Level.2 57

프로그래머스(Python) 92341번 주차 요금 계산 풀이

Python으로 구현한 92341번 주차 요금 계산 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/92341 코딩테스트 연습 - 주차 요금 계산 [180, 5000, 10, 600] ["05:34 5961 IN", "06:00 0000 IN", "06:34 0000 OUT", "07:59 5961 OUT", "07:59 0148 IN", "18:59 0000 IN", "19:09 0148 OUT", "22:59 5961 IN", "23:00 5961 OUT"] [14600, 34400, 5000] programmers.co.kr import math from collections import defaultdict def solution(fee..

프로그래머스(Python) 87390번 n^2 배열 자르기 풀이

Python으로 구현한 87390번 n^2 배열 자르기 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/87390 코딩테스트 연습 - n^2 배열 자르기 정수 n, left, right가 주어집니다. 다음 과정을 거쳐서 1차원 배열을 만들고자 합니다. n행 n열 크기의 비어있는 2차원 배열을 만듭니다. i = 1, 2, 3, ..., n에 대해서, 다음 과정을 반복합니다. 1행 1열부 programmers.co.kr def solution(n, left, right) : answer = [] for i in range(left, right + 1) : answer.append(max(i//n, i%n) + 1) return answer 1. 전..

프로그래머스(Python) 17683번 [3차] 방금그곡 풀이

Python으로 구현한 17683번 [3차] 방금그곡 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/17683 코딩테스트 연습 - [3차] 방금그곡 방금그곡 라디오를 자주 듣는 네오는 라디오에서 방금 나왔던 음악이 무슨 음악인지 궁금해질 때가 많다. 그럴 때 네오는 다음 포털의 '방금그곡' 서비스를 이용하곤 한다. 방금그곡에서는 TV, programmers.co.kr def replacement(data) : data = data.replace('C#', 'c') data = data.replace('D#', 'd') data = data.replace('F#', 'f') data = data.replace('G#', 'g') data = d..

프로그래머스(Python) 17680번 [1차] 캐시 풀이

Python으로 구현한 17680번 [1차] 캐시 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/17680 = cacheSize : data.popleft() data.append(city) return answer 1. 만약 cacheSize가 0이라면 모든 도시가 cacheSize보다 크므로 len(cities) * 5 를 반환한다. 2. cities의 city를 하나씩 확인하는데, 대소문자를 구분하지 않으므로 모두 소문자로 변환한다. 3. 만약 city가 data에 존재한다면 answer를 1 증가시키고 data에서 city를 제거한다. 4. 그렇지 않다면 answer를 5 증가시킨다. 이후 len(data)가 cacheSize보다 크거..

프로그래머스(Python) 17684번 [3차] 압축 풀이

Python으로 구현한 17684번 [3차] 압축 문제 풀이입니다. 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 def solution(msg) : answer = [] info = {} for i in range(26) : info[chr(65+i)] = i + 1 next_info_num = 27 index = 0 i = 1 while True : while msg[index:index + i] in info : i += 1..

프로그래머스(Python) 49994번 방문 길이 풀이

Python으로 구현한 49994번 방문 길이 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/49994 코딩테스트 연습 - 방문 길이 programmers.co.kr def solution(dirs) : x, y = 0, 0 nx, ny = 0, 0 visited = [] answer = 0 for dir in dirs : if dir == 'U' : # 위로 한 칸 이동 ny += 1 elif dir == 'D' : # 아래로 한 칸 이동 ny -= 1 elif dir == 'L' : # 왼쪽으로 한 칸 이동 nx -= 1 elif dir == 'R' : # 오른쪽으로 한 칸 이동 nx += 1 if abs(nx) > 5 or abs(ny)..

프로그래머스(Python) 62048번 멀쩡한 사각형 풀이

Python으로 구현한 62048번 멀쩡한 사각형 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/62048 코딩테스트 연습 - 멀쩡한 사각형 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 programmers.co.kr def solution(w, h) : gcd = 0 for i in range(min(w, h), 0, -1) : if w % i == 0 and h % i == 0 : gcd = i break answer = w * h - (w + h - gcd) return ans..

프로그래머스(Python) 42885번 구명보트 풀이

Python으로 구현한 42885번 구명보트 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/42885 코딩테스트 연습 - 구명보트 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5 programmers.co.kr from collections import deque def solution(people, limit) : answer = 0 people.sort() people = deque(people) while people : if len(people) == 1 : answer +..

프로그래머스(Python) 92342번 양궁대회 풀이

Python으로 구현한 92342번 양궁대회 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/92342 코딩테스트 연습 - 양궁대회 문제 설명 카카오배 양궁대회가 열렸습니다. 라이언은 저번 카카오배 양궁대회 우승자이고 이번 대회에도 결승전까지 올라왔습니다. 결승전 상대는 어피치입니다. 카카오배 양궁대회 운영위원 programmers.co.kr from copy import deepcopy max_diff = 0 answer = [] def dfs(info, shoot, n, i) : global answer, max_diff if i == 11 : if n != 0 : shoot[10] = n score_diff = calcDiff(info, ..

프로그래머스(Python) 49993번 스킬트리 풀이

Python으로 구현한 49993번 스킬트리 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/49993 코딩테스트 연습 - 스킬트리 programmers.co.kr def solution(skill, skill_trees) : answer = 0 for value in skill_trees : data = list(skill) for info in value : if info in data : if data.pop(0) != info : break else : # for문이 중간에 끊기지 않았다면 answer += 1 return answer 1. skill_trees의 요소(value)를 하나씩 확인하고, skill 문자열을 리스트 형태로 변..