본문 바로가기

Algorithm

(77)
[프로그래머스] 코딩테스트 연습 - 매칭 점수 (Python) 코딩테스트 연습 - 매칭 점수 [2019 KAKAO BLIND RECRUITMENT] 코딩테스트 연습 - 매칭 점수 매칭 점수 프렌즈 대학교 조교였던 제이지는 허드렛일만 시키는 네오 학과장님의 마수에서 벗어나, 카카오에 입사하게 되었다. 평소에 관심있어하던 검색에 마침 결원이 발생하여, 검색개발팀 programmers.co.kr 풀이 카카오스러운 문제였습니다. 문자 열처리가 많은 만큼 예외사항도 많고 풀이 방식도 다양해지는 것 같습니다. 문자열 처리 문제였던 만큼 특별한 개념이 필요하지 않은 구현에 집중하면 풀 수 있는 문제였다고 생각됩니다. Code from collections import defaultdict import re def find_url(page, target): meta, link, ..
[프로그래머스] 코딩테스트 연습 - 광고 삽입(Python) 코딩테스트 연습 - 광고 삽입 [2021 KAKAO BLIND RECRUITMENT] 코딩테스트 연습 - 광고 삽입 시간을 나타내는 HH, H1, H2의 범위는 00~99, 분을 나타내는 MM, M1, M2의 범위는 00~59, 초를 나타내는 SS, S1, S2의 범위는 00~59까지 사용됩니다. 잘못된 시각은 입력으로 주어지지 않습니다. (예: 04:60:24, 11 programmers.co.kr 풀이 "2018 KAKAO BLIND RECRUITMENT - Level 3 - 추석 트래픽"과 비슷하게 문자열 시간을 사용하는 문제였습니다. 저는 '추석 트래픽"문제를 [start, end]로 각각 시간을 저장해두고 각각의 시간에서 최대가 되는 구간을 찾도록 풀이 했었습니다. 그래서 "광고 삽입"문제를 처..
[프로그래머스] 코딩테스트 연습 - 예상 대진표(Python) 코딩테스트 연습 - 예상 대진표 [2017 팁스타운] 코딩테스트 연습 - 예상 대진표 △△ 게임대회가 개최되었습니다. 이 대회는 N명이 참가하고, 토너먼트 형식으로 진행됩니다. N명의 참가자는 각각 1부터 N번을 차례대로 배정받습니다. 그리고, 1번↔2번, 3번↔4번, ... , N-1번↔N programmers.co.kr 풀이 어려울 것 없이 반복문 하나만 사용하면 해결되는 문제였습니다. Code def solution(n,a,b): answer = 0 minv = a if a
[프로그래머스] 코딩테스트 연습 - [3차] 방금그곡(Python) 코딩테스트 연습 - [3차] 방금그곡 [2018 KAKAO BLIND RECRUITMENT] 코딩테스트 연습 - [3차] 방금그곡 방금그곡 라디오를 자주 듣는 네오는 라디오에서 방금 나왔던 음악이 무슨 음악인지 궁금해질 때가 많다. 그럴 때 네오는 다음 포털의 '방금그곡' 서비스를 이용하곤 한다. 방금그곡에서는 TV, programmers.co.kr 풀이 문제의 테스트케이스가 다양해서 힘들었던 문제였습니다. 그래서 제가 생각할 때의 신경 써야 하는 부분들을 적어보자면 아래와 같습니다. 1. #이 붙은 음도 하나의 음으로 쳐야 합니다. 2. m을 검색할 때 재생된 음악 전체를 보아야 합니다. 전 2번에서 find를 한 번만 써서 좀 헤맸는데 저를 구해준 테스트 케이스가 바로 "CCB", ["03:00,03..
[프로그래머스] 코딩테스트 연습 - 쿼드압축 후 개수 세기(Python) 코딩테스트 연습 - 쿼드압축 후 개수 세기 [월간 코드 챌린지 시즌1] 코딩테스트 연습 - 쿼드압축 후 개수 세기 [[1,1,0,0],[1,0,0,0],[1,0,0,1],[1,1,1,1]] [4,9] [[1,1,1,1,1,1,1,1],[0,1,1,1,1,1,1,1],[0,0,0,0,1,1,1,1],[0,1,0,0,1,1,1,1],[0,0,0,0,0,0,1,1],[0,0,0,0,0,0,0,1],[0,0,0,0,1,0,0,1],[0,0,0,0,1,1,1,1]] [10,15] programmers.co.kr 풀이 특별한 개념이 필요하지 않은 인덱스 계산을 구현해야 하는 문제였습니다. 이런 문제는 numpy 쓰게해주면 좋겠네요ㅎㅎ Code def solution(arr): def find(r1, c1, r2, ..
[프로그래머스] 코딩테스트 연습 - 숫자 게임(Python) 코딩테스트 연습 - 숫자 게임 [Summer/Winter Coding(~2018)] 코딩테스트 연습 - 숫자 게임 xx 회사의 2xN명의 사원들은 N명씩 두 팀으로 나눠 숫자 게임을 하려고 합니다. 두 개의 팀을 각각 A팀과 B팀이라고 하겠습니다. 숫자 게임의 규칙은 다음과 같습니다. 먼저 모든 사원이 무작위로 programmers.co.kr 풀이 어렵지 않은 문제였다고 생각되네요. 가장 많은 승점을 얻기 위해서는 가장 효율적으로 이겨야 하는데 효율적으로 이기는 방법은 A의 숫자보다 큰 여러 숫자들 중 가장 작은 값을 가지는 숫자로 이기는 것이 되겠죠. 예를 들어 A=[6, 7, 8], B=[7, 8, 9]가 있다고 가정해보면 A의 6을 이기기 위해 6보다 큰 수들 중에서 가장 작은 값 7을 사용하는 것..
[프로그래머스] 코딩테스트 연습 - 방문 길이(Python) 코딩테스트 연습 - 방문 길이 [Summer/Winter Coding(~2018)] 코딩테스트 연습 - 방문 길이 programmers.co.kr 풀이 처음으로 이동했던 경로들의 개수만을 찾는 문제로 간단했던 문제라고 생각되네요. 방문 기록을 set을 이용하여 저장하고 모든 명령을 마치면 set의 길이만 반환해주면 되니까요ㅎㅎ Code def solution(dirs): direc = {'U':(0,1), 'D':(0,-1), 'R':(1,0), "L":(-1,0)} visit = set() x, y = 0, 0 for d in dirs: nx, ny = x+direc[d][0], y+direc[d][1] if -5
[프로그래머스] 코딩테스트 연습 - 블록 이동하기(Python) 코딩테스트 연습 - 블록 이동하기 [2020 KAKAO BLIND RECRUITMENT] 코딩테스트 연습 - 블록 이동하기 [[0, 0, 0, 1, 1],[0, 0, 0, 1, 0],[0, 1, 0, 1, 1],[1, 1, 0, 0, 1],[0, 0, 0, 0, 0]] 7 programmers.co.kr 풀이 두 개의 좌표를 하나처럼 이동하는 것이 쉽지 않은 것 같으면서도 쉬울 수도 있는 문제였던 것 같습니다. 먼저 탐색방법으로는 BFS를 사용하였는데 각 지점에서 이동 가능한 경우가 많아 DFS보다 효율적일 것이라고 생각했습니다. 문제는 회전을 처리하는 방법이겠죠. 사실 천천히 생각해보면 BFS를 선택한 순간부터 이미 정답을 알고 있는 것이나 마찬가지입니다. BFS는 단계별로 진행되니 앞으로 이동할 좌표..