Loading...

[Python] 프로그래머스 - 파일명 정렬

https://programmers.co.kr/learn/courses/30/lessons/17686 코딩테스트 연습 - [3차] 파일명 정렬 파일명 정렬 세 차례의 코딩 테스트와 두 차례의 면접이라는 기나긴 블라인드 공채를 무사히 통과해 카카오에 입사한 무지는 파일 저장소 서버 관리를 맡게 되었다. 저장소 서버에는 프로그램 programmers.co.kr 2018 카카오 블라인드 코딩테스트에 출제된 문제이다. # 문제가 복잡해보이고 정렬해야 할 것도 많아보이지만, head와 number만 잘 파싱해서 추출한 다음 정렬하면 되는 문제이다. # 카카오는 re모듈을 이용해 문자열을 파싱하는 문제가 많이 나오는 것 같다. import re def solution(files): answer = [] file =..

[Python] 프로그래머스 - 압축

https://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 # 전에 포스팅한 '방금그곡'과 같이 2018 카카오 블라인드 코딩테스트에 출제된 문제이다. 생각한 아이디어대로 짜봤는데 바로 통과되어서 놀랐다. # 4번째 줄처럼 dic을 선언하는 방식을 알게 되었고, 다른 사람들의 풀이를 보니 zip함수를 사용해 아래와 같이 선언하는 방법도 있다는 것도 알게 되었다. " dic= dict(zip("ABCDEFGHIJKLMNOPQRSTUVWXYZ",..

[Python] 프로그래머스 - 방금그곡

https://programmers.co.kr/learn/courses/30/lessons/17683 코딩테스트 연습 - [3차] 방금그곡 방금그곡 라디오를 자주 듣는 네오는 라디오에서 방금 나왔던 음악이 무슨 음악인지 궁금해질 때가 많다. 그럴 때 네오는 다음 포털의 '방금그곡' 서비스를 이용하곤 한다. 방금그곡에서는 TV, programmers.co.kr 2018 카카오 블라인드 코딩테스트 문제이다. 문제 지문이 길어서 문제 이해하는데도 오래걸렸고 문자열 처리가 꽤 까다로웠다. # 테스트케이스 2개가 자꾸 틀려서 꽤 시간을 잡아먹었는데, 알고보니 20~24줄 재생시간 구하는 알고리즘 때문이었다. # change함수처럼 #붙은 음들을 어떻게 처리해야하는지 아이디어와 실제로 구현하는 데도 시간이 많이 소..

[Python] 프로그래머스 - 영어 끝말잇기

https://programmers.co.kr/learn/courses/30/lessons/12981 코딩테스트 연습 - 영어 끝말잇기 3 ["tank", "kick", "know", "wheel", "land", "dream", "mother", "robot", "tank"] [3,3] 5 ["hello", "observe", "effect", "take", "either", "recognize", "encourage", "ensure", "establish", "hang", "gather", "refer", "reference", "estimate", "executive"] [0,0] programmers.co.kr # 코드가 좀 정리가 안되었긴 하지만 속도를 빠르게 하기위해 dictionary를 사..

[Python] 프로그래머스 - 예상 대진표

https://programmers.co.kr/learn/courses/30/lessons/12985 코딩테스트 연습 - 예상 대진표 △△ 게임대회가 개최되었습니다. 이 대회는 N명이 참가하고, 토너먼트 형식으로 진행됩니다. N명의 참가자는 각각 1부터 N번을 차례대로 배정받습니다. 그리고, 1번↔2번, 3번↔4번, ... , N-1번↔N programmers.co.kr mid를 이분탐색으로 절반씩 옮겨가며, mid기준으로 같은쪽에 있으면 이분탐색을 계속 돌리고 서로 다른 쪽에 있으면 cnt를 출력하는 식으로 코드를 짰다. import math def solution(n, a, b): def binary_search(left, right, cnt): global answer # 이분 탐색 if left ..

[Python] 프로그래머스 - 괄호 회전하기

https://programmers.co.kr/learn/courses/30/lessons/76502?language=python3 코딩테스트 연습 - 괄호 회전하기 programmers.co.kr 월간 코드 챌린지(4월)에 출제된 문제이다. # check함수는 올바른 괄호인지 판별하는 함수이다. 올바른 괄호인지 판단하는 문제는 스택을 공부할 때 대표적으로 푸는 문제라 함수를 짜는데 어려움은 없다. # input값을 deque에 넣고 ip의 길이만큼 rotate(-1)을 해준다. (왼쪽으로 한칸씩 밈) 만약 check(ip)가 True이면 올바른 괄호이므로 answer에 1을 증가시켜준다. from collections import deque def solution(ip): def check(s): st..

[Python] 프로그래머스 - 네트워크

https://programmers.co.kr/learn/courses/30/lessons/43162 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr BFS문제이다. from collections import deque def solution(n, computers): cnt = 0 visited = [False] * (n+1) graph = [[] for _ in range(n)] q = deque() # 연결되어 있는 컴퓨터 graph에 저장 for i in range(n): for j in rang..

[Python] 프로그래머스 - 타겟 넘버

https://programmers.co.kr/learn/courses/30/lessons/43165?language=python3 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+ programmers.co.kr 무난한 DFS/BFS 문제이다. def solution(numbers, target): global answer answer = 0 cnt = 0 dir = [-1, 1] # 숫자를 더하거나 빼거나 둘 중 하나이므로 [-1, 1] 선언 def dfs(cnt, k): global ..