Programmers / 2단계 / 주차 요금 계산 / python / 2022 KAKAO BLIND RECRUITMENT
·
Coding Test/Programmers
https://school.programmers.co.kr/learn/courses/30/lessons/92341 나의 풀이 . 딕셔너리를 이용해 차량 번호에 이용 시간에 따른 주차 요금을 누적시키면 될 것이라고 생각하였다. 하지만 한 차량이 여러 번 주차를 할 경우 IN, OUT 상태에 따른 구분을 하는 것에 어려움이 있었다. 모범 답안 import math def solution(fees, records): check = {} for record in records: time, number, status = record.split() time = time.split(':') time = int(time[0])*60 + int(time[1]) if number not in check: check[num..
Programmers / 2단계 / 방문 길이 / python
·
Coding Test/Programmers
https://school.programmers.co.kr/learn/courses/30/lessons/49994 나의 풀이 def solution(dirs): j={'R':0, 'L':0, 'U':0, 'D':0} location=[] count=0 for i in dirs: j[i]+=1 if (j['R']-j['L'], j['U']-j['D']) not in location and (abs(j['R']-j['L'])
Programmers / 2단계 / [3차] n진수 게임 / python / 2018 KAKAO BLIND RECRUITMENT
·
Coding Test/Programmers
https://school.programmers.co.kr/learn/courses/30/lessons/17687 나의 풀이 (오답) def solution(n, t, m, p): num='' for i in range(t): answer='' while i / n >= 1: answer += str(i % n) i = i // n else: answer += str(i) num += answer[::-1] return num 이진수를 구하는 것까지는 접근 가능하였으나 10~15를 각각 A~F로 출력하는 조건과 게임에 참가하는 인원과 튜브의 순서 사이에서 어떻게 찾고자 하는 문자열을 뽑아낼 것인지 어려움이 있었다. 모범 답안 def convert(number, n): if number == 0: retu..
Programmers / 2단계 / 다리를 지나는 트럭 / python
·
Coding Test/Programmers
https://school.programmers.co.kr/learn/courses/30/lessons/42583 나의 풀이 (오답) from collections import deque def solution(bridge_length, weight, truck_weights): q=deque() q.append(truck_weights[0]) time=1 truck_weights = truck_weights[1:] while truck_weights: if len(q)
Programmers / 2단계 / [3차] 압축 / python / 2018 KAKAO BLIND RECRUITMENT
·
Coding Test/Programmers
https://school.programmers.co.kr/learn/courses/30/lessons/17684?language=python3 나의 풀이 . 모범 답안 def solution(msg): alpha = {chr(i+65) : i+1 for i in range(26)} answer = [] while True: if msg in alpha: answer.append(alpha[msg]) break for i in range(1,len(msg)): if msg[:i+1] not in alpha: answer.append(alpha[msg[:i]]) alpha[msg[:i+1]] = len(alpha)+1 msg = msg[i:] break return answer alpha 딕셔너리에 for..
Programmers / 2단계 / 땅따먹기 / python
·
Coding Test/Programmers
코딩테스트 연습 - 땅따먹기 | 프로그래머스 스쿨 (programmers.co.kr) 나의 풀이 . 모범 답안 def solution(land): for i in range(1,len(land)): for j in range(len(land[0])): land[i][j] += max(land[i-1][:j] + land[i-1][j+1:]) return max(land[len(land)-1]) 배열에서의 최댓값을 더해 최고점을 구해야 하는데 여기에 같은 열을 제외한다는 조건이 있는 문제이다. 같은 열을 제외해야 하므로 max 함수를 이용해서 최댓값의 인덱스를 찾고 다음 행의 최댓값의 인덱스와 비교하여 찾아야 하는지 고민하였지만, 무조건 첫 번째 행의 최댓값을 선택하여 그 열을 기준으로 구한 값이 최고점이..
Programmers / 2단계 / 뒤에 있는 큰 수 찾기 / python
·
Coding Test/Programmers
코딩테스트 연습 - 뒤에 있는 큰 수 찾기 | 프로그래머스 스쿨 (programmers.co.kr) 나의 풀이 def solution(numbers): result=[] for i in range(len(numbers)): for j in numbers[i:]: if numbers[i]
Programmers / 2단계 / [스택/큐] 주식가격 / python
·
Coding Test/Programmers
코딩테스트 연습 - 주식가격 | 프로그래머스 스쿨 (programmers.co.kr) 나의 풀이 . 모범 답안 def solution(prices): length = len(prices) # 모든 가격 max값으로 세팅 result = [ i for i in range (length - 1, -1, -1)] # 주식 가격이 떨어지는 경우를 찾아 수정 stack = [0] for i in range (1, length): while stack and prices[stack[-1]] > prices[i]: j = stack.pop() result[j] = i - j stack.append(i) return result 1. 모든 가격 max값으로 세팅: result=[4,3,2,1,0] 2. 가격이 떨어지는..