https://school.programmers.co.kr/learn/courses/30/lessons/64061?language=java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr # 힌트 스택. 해답 보기 더보기 public static int solution(int[][] board, int[] moves) { List mat = new ArrayList(); for (int j = 0; j =..
https://school.programmers.co.kr/learn/courses/30/lessons/12987 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr # 힌트 우선순위 큐. 참고로 DFS로 접근하면 입력 크기가 10만이기 때문에 안 된다. 해답 보기 더보기 문제 풀이의 핵심 아이디어는 B는 A보다 크고 B가 가지고 있는 수 중 제일 작은 수로 이겨야 한다는 점이다. 즉, A = 3 이고 B = 4,5이면 B는 4로 이겨야 한다. 각 배열를 역순으로 정렬한다. A = [7,5,3,1] B = [8,6,2,2] 7, 8 비교 7 < 8 이므로 wi..
https://school.programmers.co.kr/learn/courses/30/lessons/17686 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr # 힌트 단순 구현 + 정렬 문제다. head, number, tail 파싱만 잘하는게 핵심이다. (subString) 파싱한 파일의 정보를 담기 위한 커스텀 객체 생성을 추천한다. 런타임 오류 힌트 : F-15 처럼 tale이 빈 문자열인 경우를 잘 처리했는지 확인 해답 보기 더보기 static class File { int originalIndex; String originalName; Str..
https://school.programmers.co.kr/learn/courses/30/lessons/42579 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr # 힌트 TreeSet을 적절히 사용하면 정렬 코드를 줄일 수 있다. 장르 이름, 플레이 횟수 처럼 하나의 묶음으로 관리해야 하는 정보는 객체를 만든다. 테스트케이스 2, 15 힌트 : 제한 조건 3번을 참조할 것 해답 보기 더보기 static class Music { int id; int playCount; public Music(int id, int playCount) { this.id = i..
https://school.programmers.co.kr/learn/courses/30/lessons/42898 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr # 힌트 생각보다 쉬운 최단경로 경우의 수 구하는 문제이다. 근데 함정은 이 문제 자체에 있다... 좋은 문제는 아닌 것 같다. 물 웅덩이의 좌표는 x, y가 거꾸로 되어있으니 주의하자. (2,2) 이렇게 되어있어서 심지어 헷갈린다. 본인이 코드를 제대로 작성한 것 같은데 테스트케이스 1개만 성공한다면 웅덩이 좌표를 확인하길 바란다. 효율성 테스트 힌트 : 이것도 좀 문제가 이상한데, 경우의 수를..
https://school.programmers.co.kr/learn/courses/30/lessons/43163 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr # 힌트 hit 다음으로 올 수 있는 경우의 수는 hot, dot, dog, lot, log, cog 인데, 변환 조건 때문에 hot만 가능하다. 즉, 변환 가능한 단어들에 대해서 DFS를 진행하고, target 단어에 도달하면 지금까지 방문한 단어들 (깊이값)을 저장한다. 저장된 깊이값중 가장 작은 값을 찾으면 된다. 방문했던 단어는 재방문을 방지하기 위해 visited를 관리해야한다. (힌트 ..
https://school.programmers.co.kr/learn/courses/30/lessons/42577 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr # 힌트 입력 크기가 100만이라 2중 반복문을 통해서 하나하나 비교하면 효율성 테스트에서 걸리게 된다. 모든 요소를 전부 비교할 필요가 없다. phone_book 배열을 사전순으로 정렬하면, 인접한 요소끼리만 비교하는 것으로 충분하다. 왜냐하면 인접한 요소를 비교했는데 접두사가 아니면, 사전순으로 정렬된 후의 요소들도 당연히 아니기 때문이다. 해답 보기 더보기 public static boole..
https://school.programmers.co.kr/learn/courses/30/lessons/43165?language=java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr # 힌트 DFS를 상태 공간 트리를 탐색하는 용도로 사용하는 문제이다. 해당 숫자를 더하는 경우와 빼는 경우 둘 다 DFS를 진행한다. 이런 식으로 상태 공간 트리를 그려보면 이해하기 쉬울 것이다. 해답 보기 더보기 # 해답 layer : 현재 상태 공간 트리의 계층 (이 값은 numbers의 값 + 1과 동일하다. 1은 첫 번째 시작 노드) sum : 현재까지의 숫자를 ..