목록Algorithm/프로그래머스 (7)
Dazzling 개발 노트
[프로그래머스] 콜라 문제 (Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/132267 풀이/후기 문제를 보자마자 재귀로 풀어야겠다는 생각이 들었다. 평소 재귀에 약해서 두려움이 있었지만, 최대한 재귀로 풀기 위해 신경썼다. 다른 사람들 풀이를 보니 더욱 간단한 방법도 있는 것 같지만, 그래도 만족스럽다^_^ 코드 class Solution { static int answer = 0; public int solution(int a, int b, int n) { return colla(a, b, n); } static int colla(int a, int b, int n){ if (n < a) return answer; int out..
[프로그래머스] 소수 찾기 (Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/12921 풀이/후기 1부터 n까지라는 것을 보고 dp로 풀 수 있지 않을까? 하고 dp로 풀었다. 소수일 때마다 카운트를 하는 것과 성능차이가 날지 궁금해서 풀어보니 확실히 속도는 dp가 빨랐다. 이 문제에서 큰 효율을 본 것은 아니지만...! 예전엔 dp너무 어려워서 엉엉 울었는데,, 이제는 활용 방안을 생각해 낼 수 있어서 뿌듯했다. 코드 dp로 푼 풀이 class Solution { public int solution(int n) { int[] dp = new int[n+1]; dp[1] = 0; dp[2] = 1; for (int i=3; i
[프로그래머스] 오픈채팅방 (Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/42888 풀이/후기 생각보다 쉽고 간단하게 해결할 수 있는 문제였는데, 비효율적으로 풀다가 테스트케이스 하나가 안넘어가서 삽질을 엄청했다 ㅎ 로그를 id로 미리 기록한 후 닉네임은 최종 값을 기준으로 id를 덮어씌우도록 풀었다. map을 잘 활용해서 푼 것 같아 좋았다! 코드 import java.util.*; class Solution { public ArrayList solution(String[] record) { HashMap map = new HashMap(); ArrayList answer = new ArrayList(); // id : 닉네임 ..
[프로그래머스] 햄버거 만들기 (Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/133502 풀이/후기 Stack으로 풀지 List로 풀지 고민하다가 결국 List로 해결했다. 연속된 것을 판단할 때, 꼭 반복문의 조건으로 이전 값을 탐색하지 않아도 i+1, i+2, i+3을 통해 한 번에 조회할 수 있는 방법을 습득했다.(?) 코드 import java.util.*; class Solution { public int solution(int[] ingredient) { int answer = 0; List list = new LinkedList(); for (int i : ingredient){ list.add(i); while (l..
[프로그래머스] 타겟넘버 (Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/43165 풀이/후기 보통 DFS로 풀면 메모리랑, 효율로 더 좋게 풀 수 있는데 난 BFS가 익숙해서 그렇게 풀었당.. 코드 import java.util.*; import java.io.*; class Solution { static Queue q = new LinkedList(); public int solution(int[] numbers, int target) { q.add(0); for (int i = 0; i < numbers.length; i++) { int size = q.size(); for (int j = 0; j < size; j++) {..
[프로그래머스] 게임 맵 최단거리 (Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/1844?language=java 풀이/후기 정말정말 오랜만에 DFS/BFS 문제를 풀어봤다. 다행히 다 까먹지는 않았나보다..ㅎ 제출하니 효율성 검사에서 모두 시간 초과가 발생했다. 처음에 출력 시 int ans에 대입해서 반환했는데, 그냥 바로 visited[][] 값으로 반환하니 통과할 수 있었다. 프로그래머스로 많이 풀어보지 않아 이런 디테일한 채점 시스템이 좀 신기했다. 어디가 틀렸는지 모르니 계속 고민하게 되었다. 그 김에 비효율적인 요소까지 고려할 수 있었다. 코드 import java.util.*; class Solution { stat..
[프로그래머스] 자연수 뒤집어 배열로 만들기 (Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/12932# 풀이/후기 쉽게 풀었는데 일부 테스트케이스에서 오답 처리가 되었다. 원인은 (int) 형변환 시에 (n%10)을 n%10로 적어서 정상적인 형변환이 이루어지지 않아서였다. 사소한 부분을 실수하니 찾는데 시간이 좀 걸렸다. 그래도 하나 또 알아간다. 코드 class Solution { public int[] solution(long n) { //n = 5000; String str = String.valueOf(n); int[] answer = new int[str.length()]; int i=0; while (n > 0){ a..