프로그래머스 | 2020 카카오 인턴십 | 키패드 누르기 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 방법 1) 각 키까지의 거리를 사전에 정의하기 def solution(numbers, hand): # 각 키에서 0~9키 까지의거리(키:[각 번호까지의 거리]) key = {0: [0, 4, 3, 4, 3, 2, 3, 2, 1, 2], 1: [4, 0, 1, 2, 1, 2, 3, 2, 3, 4], 2: [3, 1, 0, 1, 2, 1, 2, 3, 2, 3], 3: [4, 2, 1, 0, 3, 2, 1, 4, 3, 2], 4: [3, 1, 2, 3, 0, 1, 2, 1, 2, 3], 5: [2, 2, 1, 2,..
프로그래머스 | 2019 카카오 개발자 겨울 인턴십 | 크레인 인형뽑기 게임 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(board, moves): basket = [] # 바구니 c = 0 # 터트려져 사라진 인형의 개수 for m in moves: for i in range(len(board)): if board[i][m-1] != 0: print(board[i][m-1]) basket.append(board[i][m-1]) board[i][m-1] = 0 break # 인형을 찾았으면 board 반복 종료 # 바구니에 마지막으로 들어온 두 인형이 같으면 터트리기 if len(basket) > 1..
백준 7576 | BFS | 토마토 [파이썬 python]
·
Algorithm/백준
7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 코드 from collections import deque import sys input = sys.stdin.readline m, n = map(int, input().split()) # 가로, 세로 graph = [] for _ in range(n): graph.append(list(map(int, input().split()))) # 익은 토마토의 위치 queue에 추가 queue = deque() for i in range(n): for ..
프로그래머스 | 옹알이(2) [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(babbling): answer = 0 can = ['aya', 'ye', 'woo', 'ma'] for bab in babbling: # babbling의 단어 하나씩 확인 for c in can: if c * 2 not in bab: # 연속으로 나오지 않으면 공백(' ')으로 대체 bab = bab.replace(c, ' ') if bab.isspace(): # 공백으로만 이루어져 있으면 answer+1 answer += 1 return answer 옹알이(1) 문제에서는 p..
백준 1012 | DFS | 유기농 배추 [파이썬 python]
·
Algorithm/백준
1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 코드 import sys sys.setrecursionlimit(10**6) input = sys.stdin.readline # dfs 정의 def dfs(x, y): # 상하좌우 dx = [0, 0, -1, 1] dy = [1, -1, 0, 0] # 네 방향 탐색 for i in range(4): nx = x + dx[i] ny = y + dy[i] # 범위 안에 있고 1이면(=배추이면) 지나간것을 -1로 표시하고 주변 탐색 if (0
백준 1541 | 그리디 | 잃어버린 괄호 [파이썬 python]
·
Algorithm/백준
1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 처음 시도한 코드 math = input().split('-') # '-' 기준 분리 hap = [] for i in math: if i.isdigit(): # 숫자이면 정수로 바꿔 hap에 저장 hap.append(int(i)) else: # 문자열이면 eval 메소드로 식 계산 hap.append(eval(i)) result = hap[0] for i in hap[1:]: # hap의 1번 이후 값들을 순차적으로 result에서 빼줌 result -= ..