프로그래머스(Python) 풀이/Level.2 59

프로그래머스(Python) 17687번 [3차] n진수 게임 풀이

Python으로 구현한 17687번 [3차] n진수 게임 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/17687 코딩테스트 연습 - [3차] n진수 게임 N진수 게임 튜브가 활동하는 코딩 동아리에서는 전통적으로 해오는 게임이 있다. 이 게임은 여러 사람이 둥글게 앉아서 숫자를 하나씩 차례대로 말하는 게임인데, 규칙은 다음과 같다. 숫자를 0 programmers.co.kr def solution(n, t, m, p) : answer = '' str_value = '' data = dict() for i in range(10) : data[i] = str(i) data[10] = 'A' data[11] = 'B' data[12] = 'C' d..

프로그래머스(Python) 12909번 올바른 괄호 풀이

Python으로 구현한 12909번 올바른 괄호 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/12909 코딩테스트 연습 - 올바른 괄호 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은 programmers.co.kr def solution(s) : left = [] open = s.count('(') close = s.count(')') if open != close : return False for i in range(len(s)) : if s[i] == '(' ..

프로그래머스(Python) 12911번 다음 큰 숫자 풀이

Python으로 구현한 12911번 다음 큰 숫자 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/12911 코딩테스트 연습 - 다음 큰 숫자 자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니 programmers.co.kr def solution(n) : temp = n + 1 while True : if str(bin(temp)[2:]).count('1') == str(bin(n)[2:]).count('1') : return temp temp += 1 1. n+1을 temp의 가장..

프로그래머스(Python) 12913번 땅따먹기 풀이

Python으로 구현한 12913번 땅따먹기 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/12913 코딩테스트 연습 - 땅따먹기 땅따먹기 게임을 하려고 합니다. 땅따먹기 게임의 땅(land)은 총 N행 4열로 이루어져 있고, 모든 칸에는 점수가 쓰여 있습니다. 1행부터 땅을 밟으며 한 행씩 내려올 때, 각 행의 4칸 중 한 칸만 밟 programmers.co.kr def solution(land): dp = [[0 for _ in range(len(land[0]))] for _ in range(len(land))] for i in range(len(land)) : for j in range(4) : if i == 0 : dp[i][j] = ..

프로그래머스(Python) 12924번 숫자의 표현 풀이

Python으로 구현한 12924번 숫자의 표현 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/12924 코딩테스트 연습 - 숫자의 표현 Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할 programmers.co.kr def solution(n) : answer = 0 for i in range(1, n // 2 + 1) : sum_value = 0 for j in range(i, n + 1) : sum_value += j if sum_value == n : answer += 1 break ..

프로그래머스(Python) 12941번 최솟값 만들기 풀이

Python으로 구현한 12941번 최솟값 만들기 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/12941 코딩테스트 연습 - 최솟값 만들기 길이가 같은 배열 A, B 두개가 있습니다. 각 배열은 자연수로 이루어져 있습니다. 배열 A, B에서 각각 한 개의 숫자를 뽑아 두 수를 곱합니다. 이러한 과정을 배열의 길이만큼 반복하며, 두 수를 곱 programmers.co.kr def solution(A, B) : answer = 0 A.sort() B.sort(reverse=True) for i in range(len(A)) : answer += A[i] * B[i] return answer 1. 전달받은 A 리스트를 오름차순으로 정렬하고, B ..

프로그래머스(Python) 76502번 괄호 회전하기 풀이

Python으로 구현한 76502번 순위 검색 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/76502 코딩테스트 연습 - 괄호 회전하기 programmers.co.kr def solution(s) : answer = 0 temp = [i for i in s] for i in range(len(temp)) : temp.append(temp.pop(0)) left = [] cnt = len(temp) for j in temp : cnt -= 1 if j == "[" or j == "(" or j == "{" : # 여는 괄호를 left에 삽입 left.append(j) elif j == "}" : # 닫는 괄호일 경우 left에서 꺼내 확인 i..

프로그래머스(Python) 12985번 예상 대진표 풀이

Python으로 구현한 12985번 예상 대진표 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/12985 코딩테스트 연습 - 예상 대진표 △△ 게임대회가 개최되었습니다. 이 대회는 N명이 참가하고, 토너먼트 형식으로 진행됩니다. N명의 참가자는 각각 1부터 N번을 차례대로 배정받습니다. 그리고, 1번↔2번, 3번↔4번, ... , N-1번↔N programmers.co.kr def solution(n, a, b) : answer = 0 while a != b : a = (a + 1) // 2 b = (b + 1) // 2 answer += 1 return answer 1. a와 b의 값이 같아질 때까지 아래와 같은 작업을 반복한다. - 현재의..

프로그래머스(Python) 1844번 게임 맵 최단거리 풀이

Python으로 구현한 1844번 게임 맵 최단거리 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/1844 코딩테스트 연습 - 게임 맵 최단거리 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,1],[0,0,0,0,1]] 11 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,0],[0,0,0,0,1]] -1 programmers.co.kr from collections import deque def bfs(arr, x, y) : q = deque() dx = [0, 1, 0, -1] dy = [1, 0, -1, 0] q.append((x, y)) while q : cx, cy..

프로그래머스(Python) 42577번 전화번호 목록 풀이

Python으로 구현한 42577번 전화번호 목록 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/42577 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조 programmers.co.kr def solution(phone_book) : phone_book.sort() for i in range(len(phone_book) - 1) : index = len(phone_book[i]) if phone_book[i] in phone_book[i+1][:index] : return ..