Python/코딩 문제(34)
-
[백준] 2×n 타일링
# 설명 1*2, 2*1의 타일 종류를 가진 타일들로 2*n크기의 직사각형 보드를 채우는 경우의 수를 구하시오. 여기서 경우의 수를 10007로 나눈 나머지를 출력하시오. # 입출력 입력 (n) 출력 2 2 9 55 # 문제 풀이 def tailing(n): memo = {0:0, 1:1, 2:2} # 타일 배치 경우의 수 type_t = [1,2] # 타일 타입 if n = x: # 타일을 배치할 수 있다면 n_case += memo[N-x] memo[N] = n_case return memo[N] n = int(input()) # 보드 너비 n res = tail..
2021.11.22 -
[백준] 그룹 단어 체커
# 설명 그룹 단어란, 반복하지 않는 연속해서 나타나는 문자를 말한다. 예를 들어, ccazzzbb의 경우 c,a,z,b 가 연속해서 나타나기에 그룹 단어라고 할 수 있다. 하지만 aabbbccb의 경우 b가 떨어져서 나타나기 때문에 그룹 단어가 아니다. 단어 N개를 입력받아, 그룹 단어의 개수를 출력하는 프로그램을 작성하라. # 입출력 예시 입력 출력 4 aba abab abcabc a 1 # 문제 풀이 def is_grouded_word(word): before = "" wlist = [] for x in word: if before != x: # 바로 이전에 나온 단어와 같다면 무시 wlist.append(x) before = x if len(set(word)) == len(wlist): retur..
2021.11.14 -
[프로그래머스] 키패드 누르기
# 문제 설명 스마트폰 전화 키패드의 각 칸에 다음과 같이 숫자들이 적혀 있습니다. 키패드에서 왼손과 오른손의 엄지손가락만을 이용해서 숫자만을 입력하려고 합니다. 맨 처음 왼손 엄지손가락은 * 키패드에, 오른손 엄지손가락은 # 키패드 위치에서 시작합니다. 엄지손가락은 상하좌우 4가지 방향으로만 이동할 수 있으며 키패드 이동 한 칸은 거리로 1에 해당합니다. 왼쪽 열의 3개의 숫자 1, 4, 7을 입력할 때는, 왼손 엄지손가락을 사용합니다. 오른쪽 열의 3개의 숫자 3, 6, 9를 입력할 때는, 오른손 엄지손가락을 사용합니다. 가운데 열의 4개의 숫자 2, 5, 8, 0을 입력할 때는, 두 엄지손가락의 현재 키패드의 위치에서 더 가까운 엄지손가락을 사용합니다. 4-1. 만약 두 엄지손가락의 거리가 같다면,..
2021.11.05 -
[프로그래머스] 오픈채팅방
# 문제 설명 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있다. 채팅방에 누군가 들어오면 다음 메시지가 출력된다. "[닉네임]님이 들어왔습니다." 채팅방에서 누군가 나가면 다음 메시지가 출력된다. "[닉네임]님이 나갔습니다." 채팅방에서 닉네임을 변경하는 방법은 다음과 같이 두 가지이다. 채팅방을 나간 후, 새로운 닉네임으로 다시 들어간다. 채팅방에서 닉네임을 변경한다. 닉네임을 변경할 때는 기존에 채팅방에 출력되어 있던 메시지의 닉네임도 전부 변경된다. 예를 들어, Muzi가 나간후 다시 들어올 때, Prodo 라는 닉네임으로 들어올 경우 기존에 채팅방에 남아있던 Muzi도 Prodo로 다음과 같이 변경된다. "Prodo님이 들어왔습니다." "Prodo님이 들어왔습니다." "Prodo..
2021.11.03