프로그래머스

Algorithm/프로그래머스

프로그래머스 : 게임 맵 최단거리(Java)

https://programmers.co.kr/learn/courses/30/lessons/1844?language=java 코딩테스트 연습 - 게임 맵 최단거리 [[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로 문제를 풀려고 시도했다. 0은 벽이 있는 자리, 1은 벽이 없는 자리인데 전형적인 BFS문제이기에 BFS에 대한 입문 문제로 풀기 좋은 문제였다고 생각한다. 마지막에, 상대 팀 ..

Algorithm/프로그래머스

프로그래머스 : 짝지어 제거하기(Java)

https://programmers.co.kr/learn/courses/30/lessons/12973 코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙 programmers.co.kr [풀이] 처음에 문자열을 돌면서 i와 i+1번째의 문자가 동일하다면 replace 메소드를 사용하는 식으로 짰는데 이렇게 될 경우 시간복잡도에 의해 문제를 풀지 못한다. (다른 문제를 풀면서도 알게 된 것인데 replace메소드 자체가 내부적으로 메모리를 많이 사용하게 된다고 한다.) 그래서 스택을 이용해서 풀면 보다 간단한 코드로, 효율성 좋게 통..

Algorithm/프로그래머스

프로그래머스 : 예상 대진표(Java)

https://programmers.co.kr/learn/courses/30/lessons/12985?language=java 코딩테스트 연습 - 예상 대진표 △△ 게임대회가 개최되었습니다. 이 대회는 N명이 참가하고, 토너먼트 형식으로 진행됩니다. N명의 참가자는 각각 1부터 N번을 차례대로 배정받습니다. 그리고, 1번↔2번, 3번↔4번, ... , N-1번↔N programmers.co.kr [풀이] 1번, 2번, 3번, 4번의 사람이 있다면 한차례 토너먼트 경기를 치른 후에는 1번, 2번을 새로운 번호로 할당받는다. 만약 1,2,3,4,5,6,7,8번이 있다면 한차례 후에는 1,2,3,4라는 새로운 번호를 할당 받게 되며 또 한차례 경기를 치른다면 1,2 라는 새로운 번호를 받게 된다. 그렇게 되면..

Algorithm/프로그래머스

프로그래머스 : 같은 숫자는 싫어

programmers.co.kr/learn/courses/30/lessons/12906?language=python3 코딩테스트 연습 - 같은 숫자는 싫어 배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 programmers.co.kr 연속된 중복을 제거하는 문제입니다. 단순히 중복을 제거하는 문제면 set을 사용하여 금방 해결하겠지만, 연속된 부분을 확인해야하므로 for문을 통해 하나씩 비교하였습니다. 레벨이 1인 문제라서 쉬운 문제였습니다. def solution(arr): answer = [] answer.append(arr[0]) for i i..

Algorithm/프로그래머스

프로그래머스 : 모의고사(Python)

programmers.co.kr/learn/courses/30/lessons/42840 코딩테스트 연습 - 모의고사 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 programmers.co.kr 1번 사람부터 3번 사람까지 찍는 답은 규칙적이다. 1번 사람 : [1,2,3,4,5] 반복 2번 사람 : [2,1,2,3,2,4,2,5] 반복 3번 사람 : [3,3,1,1,2,2,4,4,5,5] 반복 그러므로 답안과 사람들의 답안을 비교하며 count 숫자를 늘리면 된다. 비교를 할 때, 사람들의 답이 반복되므로 정답 리스트의 길이를 사람들의 답 길이로 나눈 나머지를 이용..

Algorithm/프로그래머스

프로그래머스 : 3진법 뒤집기(Python)

programmers.co.kr/learn/courses/30/lessons/68935 코딩테스트 연습 - 3진법 뒤집기 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수 programmers.co.kr 3진법으로 변환을 할 때는 divmod 내장 함수를 반복하여 사용하여 구하였고 뒤집는 것은 별다른 조치를 하지 않아도 3진법의 끝 부분부터 저장되므로 신경쓰지 않아도 된다. divmod : 몫과 나머지를 반환한다. (튜플형식으로 반환) int(x,3) : 3진법으로 구성된 x를 10진법으로 바꿔주는 역할을 한다. def solut..

skyey94
'프로그래머스' 태그의 글 목록 (6 Page)