목록알고리즘 PS (108)
DevKim
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/17684 코딩테스트 연습 - [3차] 압축 TOBEORNOTTOBEORTOBEORNOT [20, 15, 2, 5, 15, 18, 14, 15, 20, 27, 29, 31, 36, 30, 32, 34] programmers.co.kr [ 알고리즘 ] 구현 [문제 접근] 기존의 알파벳으로 사전을 생성시켜준다. 그 후에 문자열을 하나씩 돌면서 사전에 존재하는 문자열까지 체크를 해주고, 존재하는 문자열+1까지의 문자열을 사전에 새로 넣어준다. 마지막 문자열을 처리하는 과정에서 index에 오류가 있어서 생각보다 오래걸렸던 문제였음 [코드] def solution(msg): answer = [] dic=[0] for i in range..
programmers.co.kr/learn/courses/30/lessons/12978 코딩테스트 연습 - 배달 5 [[1,2,1],[2,3,3],[5,2,2],[1,4,2],[5,3,1],[5,4,2]] 3 4 6 [[1,2,1],[1,3,2],[2,3,2],[3,4,3],[3,5,2],[3,5,3],[5,6,1]] 4 4 programmers.co.kr [ 알고리즘 ] 다익스트라 최단거리 알고리즘 [문제 접근] 1에서 출발하여 모든 노드까지의 최단경로를 구하기위해 다익스트라 최단경로 알고리즘을 사용하였음. 힙을 사용하여 매번 최소 경로를 가지고 있는 노드를 반환하는 것이 포인트이다. [코드] import sys import heapq def solution(N, road, K): inf = sys.m..
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..
programmers.co.kr/learn/courses/30/lessons/17683 코딩테스트 연습 - [3차] 방금그곡 방금그곡 라디오를 자주 듣는 네오는 라디오에서 방금 나왔던 음악이 무슨 음악인지 궁금해질 때가 많다. 그럴 때 네오는 다음 포털의 '방금그곡' 서비스를 이용하곤 한다. 방금그곡에서는 TV, programmers.co.kr [ 알고리즘 ] 구현 [문제 접근] #을 어떻게 처리하느냐가 이 문제의 핵심이다. 처음엔 #이 뒤에올때, 안 올때를 나눠서 풀까.. 생각했지만, 너무 번거로울 것 같아서 고민하다가 소문자로 변환해서 풀면 쉬울 것 같아서 모조리 소문자로 바꿨다. 문제를 처음에 제목 길이가 긴 순서를 우선순위로 놓고 풀어라 라고 잘못 읽어서 이상한 오류다.. 생각하고 있었다(하^^)..
programmers.co.kr/learn/courses/30/lessons/42888 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr [ 알고리즘 ] 구현 [문제 접근] 굉장히 쉬운 문제라고 생각되는 문제이다. 한 10분..?만에 제출한 것 같다 dictionary에 해당 유저네임에 들어오는 닉네임을 업데이트해주고 마지막에 형식에 맞게 출력해주면 된다 [코드] def solution(record): result = [] dic={} for i in record: List=i.split(' ') if List..
programmers.co.kr/learn/courses/30/lessons/17677# 코딩테스트 연습 - [1차] 뉴스 클러스터링 뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브 programmers.co.kr [ 알고리즘 ] 구현 [문제 접근] 다중 집합에 대해 확장할 수 있다는 조건으로, 단순히 파이썬의 내장 함수 set을 사용하여 교집합과 합집합을 구할 수 있는 문제가 아니었다. 또한 영문자외의 다른 문자뒤나, 앞에 오는 문자들은 함수에 들어가지 않는다는 점을 고려해야했다. 입력 : AA_bb_aa_AA,BBB 출력 : 13107 이 반례가 오류를 고치는..
programmers.co.kr/learn/courses/30/lessons/17686 코딩테스트 연습 - [3차] 파일명 정렬 파일명 정렬 세 차례의 코딩 테스트와 두 차례의 면접이라는 기나긴 블라인드 공채를 무사히 통과해 카카오에 입사한 무지는 파일 저장소 서버 관리를 맡게 되었다. 저장소 서버에는 프로그램 programmers.co.kr [ 알고리즘 ] 구현 [문제 접근] 문자열을 잘 다루느냐와 정렬을 할 수 있는지가 이문제의 관건이라고 생각한다. 1. 문제에서 대소문자를 고려하지 않기 때문에, 처음부터 모두 소문자로 바꿔주고 시작 2. 파이썬 정규표현식 re를 이용하여 HEAD 부분과 NUMBER 부분을 나누어주었다. 이때 TAIL 부분은 정렬에 고려하지 않아도되므로 정렬에 고려해야할 대상인 in..