목록전체 글 (229)
DevKim
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..
programmers.co.kr/learn/courses/30/lessons/67257 코딩테스트 연습 - 수식 최대화 IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과 programmers.co.kr [ 알고리즘 ] 구현 [문제 접근] 1. 파이썬의 정규표현식을 이용하여 -,+,* 부호만 뽑아낸 후 2. permutations 순열을 이용하여 해당 연산자로 나타낼 수 있는 조합을 따로 리스트에 담아줌 3. 연산을 쉽게 하기 위해서 숫자로만 이루어진 num 리스트와 부호로만 이루어진 cul 리스트를 정규표현식 re를 이용하여 따로 담아줌 4. 우선순위 부호부터 하나씩 순회..
programmers.co.kr/learn/courses/30/lessons/72411 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr [ 알고리즘 ] 구현 [문제 접근] 1. combonations 를 이용해 조합을 구해주었고 2. Counter을 이용해 나온 횟수를 구해주었다. 처음엔 collections 에 있는 defaultdict을 이용해서 문자열들의 조합을 하나씩 세주고, 그 후 정렬을 한 후에 최대값과 같은 애들을 하나씩 구해줬는데 그렇게하니 실행 케이스에서 2개 정도 시간 초과가 나서 아예 처음부..
programmers.co.kr/learn/courses/30/lessons/42883 코딩테스트 연습 - 큰 수 만들기 programmers.co.kr [ 알고리즘 ] 그리디 [문제 접근] 1. 앞에서 부터 큰 수가 와야한다는 점 2. 삭제되는 값이 k개 이어야한다는 점 3. "9999"와 같이 같은 수로 이루어진 문자열이 존재하는 경우를 고려 4. k개가 아직 다 삭제되지 않았는데 문자열을 모두 순회했을 경우를 고려 이렇게 4가지를 염두해두고 풀이한 문제이다 que를 이용하여 문자열을 하나씩 담아주고, 해당 문자열이 이미 que에 들어가있는 숫자보다 크다면, 즉 이미 que에 담긴 숫자가 해당 숫자보다 작다면 pop으로 삭제를 해준다. 이때 k < 0 이면 더 이상 pop을 진행하면 안되기 때문에 k..
programmers.co.kr/learn/courses/30/lessons/12949 코딩테스트 연습 - 행렬의 곱셈 [[2, 3, 2], [4, 2, 4], [3, 1, 4]] [[5, 4, 3], [2, 4, 1], [3, 1, 1]] [[22, 22, 11], [36, 28, 18], [29, 20, 14]] programmers.co.kr [ 알고리즘 ] 구현 [문제 접근] 행렬의 곱을 할 줄 아는 사람이라면 어떻게 구할지는 빠르게 생각났을 문제. 하지만 3중 for문을 사용해서 이중 리스트에 넣는 과정이 헷갈릴 수는 있겠다 [코드] def solution(arr1, arr2): x1=len(arr1) #행 x2=len(arr1[0]) #열 y1=len(arr2) #행 y2=len(arr2[0]..