프로그래머스 118

프로그래머스(Python) 77484번 로또의 최고 순위와 최저 순위 풀이

Python으로 구현한 77484번 로또의 최고 순위와 최저 순위 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/77484 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr def solution(lottos, win_nums) : info = {6: 1, 5: 2, 4: 3, 3: 4, 2: 5, 1: 6, 0: 6} answer = [] cnt = 0 for value in lottos : if va..

프로그래머스(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 문자열을 리스트 형태로 변..

프로그래머스(Python) 12980번 점프와 순간 이동 풀이

Python으로 구현한 12980번 점프와 순간 이동 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/12980 코딩테스트 연습 - 점프와 순간 이동 OO 연구소는 한 번에 K 칸을 앞으로 점프하거나, (현재까지 온 거리) x 2 에 해당하는 위치로 순간이동을 할 수 있는 특수한 기능을 가진 아이언 슈트를 개발하여 판매하고 있습니다. 이 아이언 슈 programmers.co.kr def solution(n) : answer = 0 while n > 0 : if n % 2 == 1 : answer += 1 n //= 2 return answer 1. n이 0 이하가 될 때까지 반복 수행하는데, 현재 n 값을 2로 나눈 나머지가 1일 경우 한 칸 ..

프로그래머스(Python) 68645번 삼각 달팽이 풀이

Python으로 구현한 68645번 삼각 달팽이 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/68645 코딩테스트 연습 - 삼각 달팽이 5 [1,2,12,3,13,11,4,14,15,10,5,6,7,8,9] 6 [1,2,15,3,16,14,4,17,21,13,5,18,19,20,12,6,7,8,9,10,11] programmers.co.kr def solution(n) : data = [[0 for _ in range(n)] for _ in range(n)] x, y = -1, 0 num = 1 for i in range(n) : for j in range(i, n) : if i % 3 == 0 : # 아래로 이동 x += 1 elif i ..

프로그래머스(Python) 17679번 [1차] 프렌즈4블록 풀이

Python으로 구현한 17679번 [1차] 프렌즈4블록 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/17679 코딩테스트 연습 - [1차] 프렌즈4블록 프렌즈4블록 블라인드 공채를 통과한 신입 사원 라이언은 신규 게임 개발 업무를 맡게 되었다. 이번에 출시할 게임 제목은 "프렌즈4블록". 같은 모양의 카카오프렌즈 블록이 2×2 형태로 4개가 붙 programmers.co.kr def solution(m, n, board) : answer = 0 board = list(list(b) for b in board) while True : delete = [] flag = False # 제거할 위치 찾기 for i in range(m-1) : ..

프로그래머스(Python) 42584번 주식가격 풀이

Python으로 구현한 42584번 주식가격 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/42584 코딩테스트 연습 - 주식가격 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,00 programmers.co.kr from collections import deque def solution(prices) : answer = [] prices = deque(prices) while prices : cnt = 0 price = prices.popleft() for i in ..

프로그래머스(Python) 12981번 영어 끝말잇기 풀이

Python으로 구현한 12981번 영어 끝말잇기 문제 풀이입니다. 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 def solut..

프로그래머스(Python) 42583번 다리를 지나는 트럭 풀이

Python으로 구현한 42583번 다리를 지나는 트럭 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/42583 코딩테스트 연습 - 다리를 지나는 트럭 트럭 여러 대가 강을 가로지르는 일차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 다리에는 트럭이 최대 bridge_length대 올라갈 programmers.co.kr def solution(bridge_length, weight, truck_weights) : answer = 0 bridge = [0] * bridge_length now_weight = 0 while truck_weights : # 트럭 빠짐 now_weigh..

프로그래머스(Python) 42578번 위장 풀이

Python으로 구현한 42578번 위장 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/42578 코딩테스트 연습 - 위장 programmers.co.kr def solution(clothes) : answer = 1 info = {} for cloth in clothes : cloth_type = cloth[1] if cloth_type in info : info[cloth_type] += 1 else : info[cloth_type] = 2 for value in info.values() : answer *= value return answer - 1 1. info 딕셔너리에 각 의상의 종류를 key로 설정하여 개수를 증가시킨다. 2. i..

프로그래머스(Python) 42883번 큰 수 만들기 풀이

Python으로 구현한 42883번 큰 수 만들기 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/42883 코딩테스트 연습 - 큰 수 만들기 programmers.co.kr def solution(number, k) : stack = [number[0]] for num in number[1:] : # stack과 k가 0보다 크고, stack의 마지막 요소가 num보다 작을 경우 반복 while len(stack) > 0 and k > 0 and stack[-1] 0 : stack = stack[:-k] return ''.join(stack) 1. n..