algorithm/프로그래머스
-
[프로그래머스] n 진수 게임 (09.02)algorithm/프로그래머스 2020. 9. 2. 23:06
문제 https://programmers.co.kr/learn/courses/30/lessons/17687 코딩테스트 연습 - [3차] n진수 게임 N진수 게임 튜브가 활동하는 코딩 동아리에서는 전통적으로 해오는 게임이 있다. 이 게임은 여러 사람이 둥글게 앉아서 숫자를 하나씩 차례대로 말하는 게임인데, 규칙은 다음과 같다. 숫자를 0� programmers.co.kr 접근법 알고리즘 요즘 너무 어렵다.. 콘이 t번 외치려면 적어도 t*m(콘이 외칠 횟수 x 참가인원 수) 만큼은 모두 알아야 한다. 0부터 시작해서 계속 n진수로 변환을 하면서 길이를 계산하여 충분한 길이가 되었을 때 멈춘다. n진수로 변환된 문자열에서 콘이 외쳐야할 순서의 문자들을 결과 StringBuiler에 append 해준다. 변환..
-
[프로그래머스] 길 찾기 게임(09.01)algorithm/프로그래머스 2020. 9. 1. 23:42
문제 https://programmers.co.kr/learn/courses/30/lessons/42892 코딩테스트 연습 - 길 찾기 게임 [[5,3],[11,5],[13,3],[3,5],[6,1],[1,3],[8,6],[7,2],[2,2]] [[7,4,6,9,1,8,5,2,3],[9,6,5,8,1,4,3,2,7]] programmers.co.kr 접근법 문제 그대로 그래프를 구현해서 풀었다. 그래프 클래스를 만들어서 삽입하는 로직을 만들어주는것이 포인트였다. 우선 y좌표 값이 높고 x좌표 값이 낮은 순으로 정렬했다. 그렇게 되면 그래프에 삽입이 되는 순서가 완성이 된다. 그 후 root 객체를 전역변수로 빼고 root를 타고 내려가면서 알맞은 위치에 삽입했다. 코드 import java.util.Ar..
-
[프로그래머스] 셔틀버스 (08.30)algorithm/프로그래머스 2020. 8. 31. 00:10
문제 https://programmers.co.kr/learn/courses/30/lessons/17678 코딩테스트 연습 - [1차] 셔틀버스 10 60 45 [23:59,23:59, 23:59, 23:59, 23:59, 23:59, 23:59, 23:59, 23:59, 23:59, 23:59, 23:59, 23:59, 23:59, 23:59, 23:59] 18:00 programmers.co.kr 접근법 LocalTime을 사용하여 직관적으로 풀었다. 우선 크루가 대기열에 도착하는 시간들을 우선순위 큐에 넣어서 오름차순으로 정렬하였다. 이때 테스트 케이스 중 24시가 들어오는 경우도 있으므로 24시가 들어오는 경우만 예외적으로 처리해주었다. n번 셔틀 버스가 있으므로 for문을 n 번만큼 돌리고 그 ..
-
[프로그래머스] 숫자 게임 (08.29)algorithm/프로그래머스 2020. 8. 29. 22:16
문제 https://programmers.co.kr/learn/courses/30/lessons/12987 코딩테스트 연습 - 숫자 게임 xx 회사의 2xN명의 사원들은 N명씩 두 팀으로 나눠 숫자 게임을 하려고 합니다. 두 개의 팀을 각각 A팀과 B팀이라고 하겠습니다. 숫자 게임의 규칙은 다음과 같습니다. 먼저 모든 사원이 무작위로 � programmers.co.kr 접근법 A팀의 출전 순서가 공개가 되었기 때문에 A팀에 맞게 B팀을 조정해주면 된다. 정렬을 해야 비교하기 편하기 때문에 일단 둘다 정렬을 했다. A팀의 공개된 순서와 상관없이 B팀이 A팀을 이길 수 있는 경우의 수 중 최대값을 찾으면 된다. A팀을 조회할 인덱스와 B팀을 조회할 인덱스로 나눠서 while 문을 사용해서 풀었다. 코드 im..
-
[프로그래머스] 기지국 설치 (08.27)algorithm/프로그래머스 2020. 8. 27. 17:21
문제 https://programmers.co.kr/learn/courses/30/lessons/12979 코딩테스트 연습 - 기지국 설치 N개의 아파트가 일렬로 쭉 늘어서 있습니다. 이 중에서 일부 아파트 옥상에는 4g 기지국이 설치되어 있습니다. 기술이 발전해 5g 수요가 높아져 4g 기지국을 5g 기지국으로 바꾸려 합니다. 그런데 5 programmers.co.kr 접근법 처음에는 전파를 받지 못하는 구간을 큐에 저장해서 그 큐를 돌면서 기지국을 설치하는 방법으로 풀었으나 시간초과가 났다. 결국에는 다른 코드를 참고할 수 밖에 없었다. 참고한 코드는 stations 배열의 인덱스와 아파트를 도는 인덱스 두개를 사용해서 while문을 돌리는 코드였다. 자세한 설명은 주석에 작성하였다. 코드 시간초과 ..
-
[프로그래머스] 경주로 건설 (08.26)algorithm/프로그래머스 2020. 8. 26. 20:53
문제 https://programmers.co.kr/learn/courses/30/lessons/67259 코딩테스트 연습 - 경주로 건설 [[0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0],[0,0,0,0,0,1,0,0],[0,0,0,0,1,0,0,0],[0,0,0,1,0,0,0,1],[0,0,1,0,0,0,1,0],[0,1,0,0,0,1,0,0],[1,0,0,0,0,0,0,0]] 3800 [[0,0,1,0],[0,0,0,0],[0,1,0,1],[1,0,0,0]] 2100 [[0,0,0,0,0,0],[0,1,1,1,1,0],[0,0,1,0,0,0],[1,0,0,1,0,1],[ programmers.co.kr 접근법 처음에는 dfs로 풀었다. 이전 x좌표를 계속 가지고 가면서 x좌표가 변하..
-
[프로그래머스] 보행자 천국 (08.25)algorithm/프로그래머스 2020. 8. 25. 23:16
문제 https://programmers.co.kr/learn/courses/30/lessons/1832 코딩테스트 연습 - 보행자 천국 3 3 [[0, 0, 0], [0, 0, 0], [0, 0, 0]] 6 3 6 [[0, 2, 0, 0, 0, 2], [0, 0, 2, 0, 1, 0], [1, 0, 0, 2, 2, 0]] 2 programmers.co.kr 접근법 혼자서 DFS로 풀었다. 시간초과가 났다. BFS로 풀려고 했다. 잘 풀리지 않았다. 결국엔 다른 사람이 짠 코드를 참고하여 dp로 풀었다. 최단 경로이기때문에 자동차는 오른쪽과 아래쪽으로 진행할 수 밖에 없다. 오른쪽으로 가는 경우의 수와 아래쪽으로 가는 경우의 수를 나눠 두 개의 배열로 만들었다. rightArr 배열에는 오른쪽으로만 가는..
-
[프로그래머스] 주식가격(08.25)algorithm/프로그래머스 2020. 8. 25. 00:37
문제 https://programmers.co.kr/learn/courses/30/lessons/42584 코딩테스트 연습 - 주식가격 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,00 programmers.co.kr 접근법 이중 포문으로 간단하게 풀 수 있을 것으로 보았지만 은근히 까다로웠다. 문제를 이해하는게 우선이었다. [1,2,3,2,3] 0번째 인덱스에 있는 1은 배열이 끝날 때까지 가격이 떨어지지 않는다. 따라서 [2,3,2,3] 4초동안 가격이 떨어지지 않는다. 1번째 인덱스 2는 배열이 끝날 때까지 가격이 떨어지지 ..