목록프로그래머스 (16)
DevKim
https://programmers.co.kr/learn/courses/30/lessons/42628 코딩테스트 연습 - 이중우선순위큐 programmers.co.kr [ 알고리즘 ] 힙 큐 알고리즘 [ 접근 방법 ] 최대힙과 최소힙 두개를 써서 해결하느냐, 최소힙 하나로 해결하느냐로 결정되는 문제이다. 최소힙에서 최대값을 pop할 수 없으니 다른 방법으로 생각을 해봐야한다. 그렇다고 Level.03 문제인데 힙을 2개를 써서 무식하게 풀라고 낸 문제는 아닌 것 같았다. 해답은 heapq.nsmallest에 있다. heapq.nsmallest(n,iterable) 을 사용하여 가장 최대인 값을 제외하고 최소인 것들로 다시 힙을 만들어주면된다. 백트래킹 풀다가 이 문제를 보니 너무 사랑스러울 지경이다 ㅎ ..
https://programmers.co.kr/learn/courses/30/lessons/77885 코딩테스트 연습 - 2개 이하로 다른 비트 programmers.co.kr [ 알고리즘 ] 단순구현 [문제 접근] 문제가 어렵다기보단, 일일이 비교하면 시간초과가 나는 문제이다. 처음엔 1씩 더해서 각각의 이진수를 구하고, 끝자리부터 한자리씩 더해나가며 해결하려고 했으나 그렇게 되면 시간복잡도가 어마어마하게 커지게 된다. 이 문제는 짝수와 홀수를 나눠서 생각 할 필요가 있다. (1) 짝수 case 짝수의 경우 2진법으로 바꾸면, 무조건 끝에 0이 오게되어있다. 1~2자리수만 다르면 되므로, 맨 끝에 0을 1로만 바꿔주면된다. (2) 홀수 case 홀수의 경우 7=111 이런 경우를 대비하여, 맨 앞에 0..
https://programmers.co.kr/learn/courses/30/lessons/77485 코딩테스트 연습 - 행렬 테두리 회전하기 6 6 [[2,2,5,4],[3,3,6,6],[5,1,6,3]] [8, 10, 25] 3 3 [[1,1,2,2],[1,2,2,3],[2,1,3,2],[2,2,3,3]] [1, 1, 5, 3] programmers.co.kr [ 알고리즘 ] 단순구현 [문제 접근] 문제를 보자마자 사각형을 기준으로 회전한다는 점에서, 삼성 기출 로봇청소기가 생각났다. 시작하는 행과 열의 기준을 정해주고 그 만큼 사각형을 회전해주면 된다. 매번 회전에 해당하는 숫자들을 리스트에 담아주고, 그 중의 최소값을 결과값에 담아주면 된다. [코드] def solution(rows, column..
https://programmers.co.kr/learn/courses/30/lessons/76502 코딩테스트 연습 - 괄호 회전하기 programmers.co.kr Spring 공부한다고 잠시 놓고 있었던 1일 1 PS를 다시 시작했다. 그저께 부터 시작이었는데.. 삼성 기출을 3번은 돌리고 싶어서 이전에 풀지 않았던 문제들 풀려고 했다가 머리 털 다 뽑히고 한문제 겨우 풀어냈다.. 하하! 삼성 기출은 정말 어렵다 ㅠㅠ 한달 뒤에 나는 잘 풀어낼 수 있는 실력을 가졌으면 하는 바람.. 그래서 오늘은 프로그래머스 2단계에 새로운 문제들이 추가됐길래 가볍게 풀어보았다. [ 알고리즘 ] 단순구현 [ 자료구조 ] 큐,스택 [문제 접근] 말은 뭔가 복잡하게 써놨지만, 그냥 단순히 모두가 알고있는 올바른 괄호 ..
programmers.co.kr/learn/courses/30/lessons/49191 코딩테스트 연습 - 순위 5 [[4, 3], [4, 2], [3, 2], [1, 2], [2, 5]] 2 programmers.co.kr [ 알고리즘 ] 단순구현 [문제 접근] 이 문제의 관건은 나 자신을 제외한 모든 사람과의 이기고,짐의 결과를 알고 있어야된다는 것이다. 이김 =1, 짐 =-1, 알 수 없음 =0으로 나타낸 리스트를 생성시켜주고 한 명의 정보에 대해서, 만약 a가 b,c,d 에게 지고 , e에겐 이겼다면, 1 ) e는 b,c,d에게 무조건 질 것이고, 2 ) b,c,d는 무조건 e를 이길 것이라는걸 알 수 있다. 이렇게 한명씩 모두 정보를 업데이트 시켜준 후, 각 행에서 0이 하나만 포함된 행을 co..
programmers.co.kr/learn/courses/30/lessons/42890 코딩테스트 연습 - 후보키 [["100","ryan","music","2"],["200","apeach","math","2"],["300","tube","computer","3"],["400","con","computer","4"],["500","muzi","music","3"],["600","apeach","music","2"]] 2 programmers.co.kr [ 알고리즘 ] 구현 [문제 접근] 최소성을 어떻게 접근해야할지 몰라서 고민하다가 다른 분의 블로그를 참고해서 풀이한 문제 조합과 set을 이용하여 구하는 문제라고는 처음에도 생각해서 풀었는데, set의 교집합을 이용하여 구한다는 생각까지는 못했던 것 같..
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 [ 알고리즘 ] 구현 [문제 접근] 문자열 통째로 들어오는 s를 어떻게 처리해주느냐가 관건인 문제 { , } 를 기준으로 split 해주는 방법과 , { 를 기준으로 split 해준 후 파이썬 정규식을 이용하여 문자열을 처리하는 방법이있다. 요즘 정규식 re를 조금씩 공부하는 중인데 이 문제는 간단한 문자열 처리였지만, 복잡..
programmers.co.kr/learn/courses/30/lessons/1844 코딩테스트 연습 - 게임 맵 최단거리 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,1],[0,0,0,0,1]] 11 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,0],[0,0,0,0,1]] -1 programmers.co.kr [ 알고리즘 ] BFS/DFS [문제 접근] BFS 최단거리 구하는 전형적인 문제이다. 최단거리를 찾기 위해 1을 찾을 때 마다 그 전의 값에 +1 을 해주고, 만약 모든 과정이 끝났는데 (=큐가 비었는데) (n,m)의 값이 아직 1이라면 벽에 막혀 지나가지 못하는 자리임을 알 수 있음 [코드] from collection..