본문 바로가기

분류 전체보기

(88)
[프로그래머스] 코딩테스트 연습 - [3차] 파일명 정렬(Python) 코딩테스트 연습 - [3차] 파일명 정렬 [2018 KAKAO BLIND RECRUITMENT] 코딩테스트 연습 - [3차] 파일명 정렬 파일명 정렬 세 차례의 코딩 테스트와 두 차례의 면접이라는 기나긴 블라인드 공채를 무사히 통과해 카카오에 입사한 무지는 파일 저장소 서버 관리를 맡게 되었다. 저장소 서버에는 프로그램 programmers.co.kr 풀이 주어지는 파일명을 HEAD, NUMBER, TAIL로 나누어 조건에 맞추어 정렬하면 되는 문제였습니다. 파일명에서 한가지 종류의 문자로 명확하게 구분되는 부분은 NUMBER이므로 NUMBER를 기준으로 split하면 되겠죠. 정렬의 우선순위는 HEAD > NUMBER 이며 TAIL은 HEAD와 NUMBER가 같을 때 원래의 순서를 유지해야하므로 정렬에..
[프로그래머스] 코딩테스트 연습 - [3차] n진수 게임(Python) 코딩테스트 연습 - [3차] n진수 게임 [2018 KAKAO BLIND RECRUITMENT] 코딩테스트 연습 - [3차] n진수 게임 N진수 게임 튜브가 활동하는 코딩 동아리에서는 전통적으로 해오는 게임이 있다. 이 게임은 여러 사람이 둥글게 앉아서 숫자를 하나씩 차례대로 말하는 게임인데, 규칙은 다음과 같다. 숫자를 0 programmers.co.kr 풀이 문제를 읽다보니 이 문제를 만드신 분은 실제로 동아리에서 이런 게임을 했던 걸까 싶었습니다ㅋㅋ 문제는 간단하게 2~16진법으로 숫자를 이어말하기하는 것이니 진법 변환 후에 차례에 맞게 숫자만 골라주면 해결할 수 있었습니다. Code def convert(num, base): if num==0: return '0' alpha = ['A','B','..
[프로그래머스] 코딩테스트 연습 - 외벽 점검(Python) 코딩테스트 연습 - 외벽 점검 [2020 KAKAO BLIND RECRUITMENT] 코딩테스트 연습 - 외벽 점검 레스토랑을 운영하고 있는 "스카피"는 레스토랑 내부가 너무 낡아 친구들과 함께 직접 리모델링 하기로 했습니다. 레스토랑이 있는 곳은 스노우타운으로 매우 추운 지역이어서 내부 공사를 하 programmers.co.kr 풀이 저에게는 정말 쉽지 않은 문제였습니다. 문제를 처음 읽고 들었던 생각은 그리드로 근접한 weak들의 거리를 구해서 거리가 가장 가까운 weak들끼리 묶어나가는 방식이었는데 한참을 헤매다가 결국 성공하지 못했습니다.. 그 후에 dist의 길이가 8이하라는 점에서 완전 탐색을 해도 되겠구나 생각했는데 완전탐색임을 알고도 코드를 작성하는 것이 쉽지 않아 결국은 다른 분들의 풀이..
[프로그래머스] 코딩테스트 연습 - 기둥과 보 설치(Python) 코딩테스트 연습 - 기둥과 보 설치 [2020 KAKAO BLIND RECRUITMENT] 코딩테스트 연습 - 기둥과 보 설치 5 [[1,0,0,1],[1,1,1,1],[2,1,0,1],[2,2,1,1],[5,0,0,1],[5,1,0,1],[4,2,1,1],[3,2,1,1]] [[1,0,0],[1,1,1],[2,1,0],[2,2,1],[3,2,1],[4,2,1],[5,0,0],[5,1,0]] 5 [[0,0,0,1],[2,0,0,1],[4,0,0,1],[0,1,1,1],[1,1,1,1],[2,1,1,1],[3,1,1,1],[2,0,0,0],[1,1,1,0],[2,2,0,1]] [[ programmers.co.kr 풀이 특별한 개념이나 효율성을 따져야 하는 문제가 아닌 간단한 구현 문제였습니다. 간단하게 기..
[프로그래머스] 코딩테스트 연습 - 2개 이하로 다른 비트(Python) 코딩테스트 연습 - 2개 이하로 다른 비트 [월간 코드 챌린지 시즌2] 코딩테스트 연습 - 2개 이하로 다른 비트 programmers.co.kr 풀이 천천히 생각해보면 그리 어렵지 않은 문제였다고 생각되네요. 먼저 문제에서 요구하는 것은 어떠한 정수 x에 대해서 비트가 2개 이하로 다른 가장 가까운 큰 수를 찾는 것이죠. 그럼 어떻게 가까운 큰수를 만들지부터 알아야 하는데 사실문제의 예시에 다 나와있다고 생각합니다ㅎㅎ 먼저 2진법으로 표현된 숫자에는 두가지 종류가 있습니다. (1) 모두 1로 이루어진 숫자 ex) 111(7) 먼저 (1)번처럼 모두 1로 이루어진 수와 가장 가까운 큰 수를 만들기 위해서는 어쩔 수 없이 자릿수가 추가되어야겠죠. 1만 더해도 111 + 1 = 1000처럼 자릿수가 변해버리..
[프로그래머스] 코딩테스트 연습 - 길 찾기 게임(Python) 코딩테스트 연습 - 길 찾기 게임 [2019 KAKAO BLIND RECRUITMENT] 코딩테스트 연습 - 길 찾기 게임 [[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 풀이 Tree에 대해 알고 있고 구현할 수 있다면 어렵지 않게 해결할 수 있는 문제였다고 생각되네요. 문제는 주어진 nodeinfo에서 Tree의 구조를 파악하고 Tree의 구조에 따라 순회하면 되니까요ㅎㅎ Code from collections import deque def solution(nodeinfo): answer = [[], []] nodes = [[nodeinfo..
[프로그래머스] 코딩테스트 연습 - 징검다리 건너기(Python) 코딩테스트 연습 - 징검다리 건너기 [2019 카카오 개발자 겨울 인턴십] 코딩테스트 연습 - 징검다리 건너기 [2, 4, 5, 3, 2, 1, 4, 2, 5, 1] 3 3 programmers.co.kr 풀이 먼저 문제의 중요 포인트는 이분 탐색이라고 생각합니다. 물론 저는 처음부터 이분 탐색으로 풀지는 않았습니다ㅎㅎ 처음 들었던 생각은 k범위의 돌들중 가장 큰 값들을 보면서 그중 가장 작은 값이 돌다리를 건널 수 있는 인원이라고 생각을 했습니다. 그렇게 구현한 것이 아래의 코드입니다. def solution(stones, k): answer = float('inf') if len(stones) != k else max(stones) for idx in range(k, len(stones) + 1): ..
[프로그래머스] 코딩테스트 연습 - 점프와 순간 이동(Python) 코딩테스트 연습 - 점프와 순간 이동 [Summer/Winter Coding(~2018)] 코딩테스트 연습 - 점프와 순간 이동 OO 연구소는 한 번에 K 칸을 앞으로 점프하거나, (현재까지 온 거리) x 2 에 해당하는 위치로 순간이동을 할 수 있는 특수한 기능을 가진 아이언 슈트를 개발하여 판매하고 있습니다. 이 아이언 슈 programmers.co.kr 풀이 문제를 풀고 나서 잠시의 기쁨 뒤에 다른 사람의 풀이를 보며 "아..." 했던 문제입니다ㅋㅋ 문제의 요점은 현재위치*2의 위치로 갈 수 있는 순간이동을 최대한 많이 활용하는 것이죠. 순간이동을 다르게 생각해본다면 반복적으로 n//2로 변환하여 중간이 되는 지점을 찾고 n이 홀수 일 때는 (n-1)//2으로 중간이 되는 지점을 찾아 해당 지점들을..