본문 바로가기

분류 전체보기263

[프로그래머스] Lv2 - 다음 큰 숫자 (파이썬) 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): cnt = bin(n)[2:].count('1') result = 0 for x in range(n+1, 1000001): if bin(x)[2:].count('1') == cnt: result = x break return result 풀이 1. n을 2진수로 바꾸고 1의 개수를 cnt에 기록 2... 2022. 5. 14.
[프로그래머스] Lv2 - 올바른 괄호 (파이썬) https://programmers.co.kr/learn/courses/30/lessons/12909 코딩테스트 연습 - 올바른 괄호 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은 programmers.co.kr def solution(s): stack = [] for target in s: if target == ')' and stack and stack[-1] == '(': stack.pop() else: stack.append(target) return True if not stack else False 자료구조, 스택 .. 2022. 5. 14.
[프로그래머스] Lv2 - 가장 큰 정사각형 찾기 (파이썬) https://programmers.co.kr/learn/courses/30/lessons/12905 코딩테스트 연습 - 가장 큰 정사각형 찾기 [[0,1,1,1],[1,1,1,1],[1,1,1,1],[0,0,1,0]] 9 programmers.co.kr def solution(board): N, M = len(board), len(board[0]) dp = [[0 for _ in range(M)] for _ in range(N)] for i in range(N): dp[i][0] = board[i][0] for j in range(M): dp[0][j] = board[0][j] for i in range(1, N): for j in range(1, M): if board[i][j] == 1: dp[i].. 2022. 5. 14.
[백준] 19238번 - 스타트 택시 (파이썬) # 스타트 택시 from collections import deque import sys input = sys.stdin.readline N, M, fuel = map(int, input().split()) # 지도 arr = [[]] for _ in range(N): arr.append([0]+list(map(int, input().split()))) # 현재 위치 taxi = list(map(int, input().split())) # 사람들 정보 people = [] for _ in range(M): people.append(list(map(int, input().split()))) dx = [0, 1, 0, -1] dy = [1, 0, -1, 0] def find_person(): tx, ty =.. 2022. 5. 14.
[프로그래머스] Lv2 - 방문 길이 (파이썬) https://programmers.co.kr/learn/courses/30/lessons/49994 코딩테스트 연습 - 방문 길이 programmers.co.kr def solution(dirs): visited = set() direction = {'R': [0, 1], 'U': [1, 0], 'L': [0, -1], 'D': [-1, 0]} x, y = 0, 0 answer = 0 for order in dirs: dx, dy = direction[order] if -5 2022. 5. 13.
[프로그래머스] Lv2 - 스킬트리 (파이썬) https://programmers.co.kr/learn/courses/30/lessons/49993 코딩테스트 연습 - 스킬트리 programmers.co.kr def solution(skill, skill_trees): answer = 0 for tree in skill_trees: index = [] for x in skill: i = tree.find(x) if i != -1: index.append((i, x)) index.sort() result = '' for _, x in index: result += x if result and result[0] == skill[0] and result in skill: answer += 1 elif not result: answer += 1 return.. 2022. 5. 13.
[프로그래머스] Lv2 - 쿼드압축 후 개수 세기 (파이썬) https://programmers.co.kr/learn/courses/30/lessons/68936 코딩테스트 연습 - 쿼드압축 후 개수 세기 [[1,1,0,0],[1,0,0,0],[1,0,0,1],[1,1,1,1]] [4,9] [[1,1,1,1,1,1,1,1],[0,1,1,1,1,1,1,1],[0,0,0,0,1,1,1,1],[0,1,0,0,1,1,1,1],[0,0,0,0,0,0,1,1],[0,0,0,0,0,0,0,1],[0,0,0,0,1,0,0,1],[0,0,0,0,1,1,1,1]] [10,15] programmers.co.kr def solution(arr): N = len(arr) answer = [0, 0] def press(start, end, N): temp = arr[start][end] .. 2022. 5. 13.