Level2 29

[프로그래머스]뉴스 클러스터링 - Java

문제 https://programmers.co.kr/learn/courses/30/lessons/17677 코딩테스트 연습 - [1차] 뉴스 클러스터링 뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브 programmers.co.kr 풀이 처음에 집합, 그니까 HashSet으로 문제를 풀려고 했는데 HashSet은 중복을 허용하지 않기 때문에 {aa, aa, aa}인 집합이 {aa}가 되어 버린다. 그래서 합집합, 교집합을 구하는데에 불편하다고 생각되어서 중간에 그냥 ArrayList로 바꿔서 풀었다. 처음에 toLowerCase()나 toUpperCase()로 문..

[프로그래머스]가장 큰 수 - Java

문제 https://programmers.co.kr/learn/courses/30/lessons/42746 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr 풀이 처음엔 그냥 순열 문제인줄 알고 DFS로 풀려고 했는데 numbers의 길이가 10만이라 순열로 풀면 시간 초과나서 안되겠구나 싶었다,,, 그래서 정렬 문제라 해서 정렬로 풀려고 해봤는데 모르겠어서 해답을 찾아봤다 ㅠㅠㅠ 문자열(수)을 앞뒤로 이어 붙인 것 중에 큰 순서대로 정렬을 하면 ..

[프로그래머스]피로도 - Java

문제 https://programmers.co.kr/learn/courses/30/lessons/87946 코딩테스트 연습 - 피로도 XX게임에는 피로도 시스템(0 이상의 정수로 표현합니다)이 있으며, 일정 피로도를 사용해서 던전을 탐험할 수 있습니다. 이때, 각 던전마다 탐험을 시작하기 위해 필요한 "최소 필요 피로도"와 던 programmers.co.kr 풀이 재귀를 활용한 DFS로 완전 탐색을 해줌! 조건에 맞으면(탐험하지 않은 던전이고, 최소 피로도보다 많은 피로도가 남아 있으면) 다음 단계로 넘겨줌 다음 단계로 넘기기 전에 방문 처리를 해주고 다음 단계를 갔다 오면 다시 방문 처리를 해제해줌! 재귀 함수의 깊이(depth)와 answer를 비교해서 최대값을 answer에 갱신해줌! 자세한건 주석..

[프로그래머스]124 나라의 숫자 - Java

문제 https://programmers.co.kr/learn/courses/30/lessons/12899 코딩테스트 연습 - 124 나라의 숫자 programmers.co.kr 풀이 3진법이랑 같은데 3대신 4를 쓴다고 생각하면 됨!! n진법 뭐시기니까 계속 나눠가면서 자릿수랑 나머지를 신경써주면 되겠죠 그니까?? 자세한건 주석으로! 코드 // 프로그래머스 - 연습문제 - 124 나라의 숫자 // https://programmers.co.kr/learn/courses/30/lessons/12899 package PROGRAMMERS.level2; public class Num12899_124나라의숫자 { private static class Solution { // 3진법이랑 같은데 3대신 4를 쓴다고..

[프로그래머스]스킬트리 - Java

문제 https://programmers.co.kr/learn/courses/30/lessons/49993 코딩테스트 연습 - 스킬트리 programmers.co.kr 풀이 쉬운 문제임! 순서를 유지하면 비교해야 하는데 배열을 이용할 수도 있을 것 같았음! 근데 나는 큐로 하나씩 빼서 비교함 비교하려는 스킬이 큐의 맨처음이 아닌데 큐에 포함되어 있으면 순서가 맞지 않는 것! 자세한건 주석으로! 코드 // 코딩테스트 연습 - Summer/Winter Coding(~2018) - 스킬트리 // https://programmers.co.kr/learn/courses/30/lessons/49993 package PROGRAMMERS.level2; import java.util.LinkedList; import ..

[프로그래머스]튜플 - Java

문제 https://programmers.co.kr/learn/courses/30/lessons/64065 코딩테스트 연습 - 튜플 "{{2},{2,1},{2,1,3},{2,1,3,4}}" [2, 1, 3, 4] "{{1,2,3},{2,1},{1,2,4,3},{2}}" [2, 1, 3, 4] "{{4,2,3},{3},{2,3,4,1},{2,3}}" [3, 2, 4, 1] programmers.co.kr 풀이 문자열이 주어지는 규칙?을 잘 보고 필요한 원소들로 어떻게 잘 나눌 것인지를 고민해봐야 한다! String 배열을 String.length()의 오름차순으로 정렬해서 비교하고 넣어주면 순서에 맞게 들어간다 여기서 어떻게 String.length()의 오름차순으로 정렬하냐!!!!!!!!!! // Str..

[프로그래머스]타겟 넘버 - Java

문제 https://programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 programmers.co.kr 풀이 쉬운 DFS 문제 재귀를 이용해서 해결했음! 항상 다음 단계를 가기 전에 뭔가를 계산했으면 그 단계를 해결하고 나면 다시 돌려 놓기!! 자세한건 주석으로! 코드 // 코딩테스트 연습 - 깊이/너비 우선 탐색(DFS/BFS) - 타겟 넘버 // https://programmers.co.kr/learn/courses/30/lesso..

[프로그래머스]더 맵게 - Java

문제 https://programmers.co.kr/learn/courses/30/lessons/42626 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같 programmers.co.kr 풀이 문제를 읽자마자 우선 순위 큐가 생각나서 그걸 이용해서 풀었음! 쉬운 문제임 코드 // 코딩테스트 연습 - 힙 - 더 맵게 // https://programmers.co.kr/learn/courses/30/lessons/42626 package PROGRAMMERS.level2; import java.util.PriorityQueue; p..

[프로그래머스]구명보트 - Java

문제 https://programmers.co.kr/learn/courses/30/lessons/42885 코딩테스트 연습 - 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자 programmers.co.kr 풀이 배열에서 인덱스와 포문의 범위를 잘 설정해서 풀면 됨 예제 1번의 배열을 sort하면 이렇게 된다. for문을 시작할 때 인덱스와 for문의 i의 위치를 그림으로 나타내면 위의 그림처럼 나타난다. 가장 가벼운 사람과 가장 무거운 사람을 보트에 태워보고 가능하면 인덱스를 한칸 오른쪽으로, i를 한칸 왼쪽으로 이동하고 answer를 1 증가시켜..