Python(41)
-
[백준] 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 -
순열과 조합 라이브러리
# 순열 (permutation) 순서가 있는 추출방식 그러니까 1번째와 2번째 하고, 2번째와 1번째는 서로 다른 것으로 간주하는 방식 from itertools import permutations p1 = permutations([1, 2, 1]) print(*p1) # (1, 2, 1) (1, 1, 2) (2, 1, 1) (2, 1, 1) (1, 1, 2) (1, 2, 1) p2 = permutations([1, 2, 1], 2) print(*p2) # (1, 2) (1, 1) (2, 1) (2, 1) (1, 1) (1, 2) # 조합 (combination) 순서는 따지지 않고, 요소들의 조합 만으로 추출하는 방식 그러니까 1번째와 2번째를 추출하는 것과 2번째와 1번째를 추출하는 것은 같은 것으..
2021.11.08 -
[프로그래머스] 키패드 누르기
# 문제 설명 스마트폰 전화 키패드의 각 칸에 다음과 같이 숫자들이 적혀 있습니다. 키패드에서 왼손과 오른손의 엄지손가락만을 이용해서 숫자만을 입력하려고 합니다. 맨 처음 왼손 엄지손가락은 * 키패드에, 오른손 엄지손가락은 # 키패드 위치에서 시작합니다. 엄지손가락은 상하좌우 4가지 방향으로만 이동할 수 있으며 키패드 이동 한 칸은 거리로 1에 해당합니다. 왼쪽 열의 3개의 숫자 1, 4, 7을 입력할 때는, 왼손 엄지손가락을 사용합니다. 오른쪽 열의 3개의 숫자 3, 6, 9를 입력할 때는, 오른손 엄지손가락을 사용합니다. 가운데 열의 4개의 숫자 2, 5, 8, 0을 입력할 때는, 두 엄지손가락의 현재 키패드의 위치에서 더 가까운 엄지손가락을 사용합니다. 4-1. 만약 두 엄지손가락의 거리가 같다면,..
2021.11.05 -
아파치 스파크 Spark 란?
Unified engine for large-scale data analytics 대용량 데이터 분석을 위한 통합된 엔진 # Spark 특징 # 다양한 프로그래밍 언어를 지원 - Python - SQL - Scala - Java - R # 빠른 속도 # 풍부한 API 제공 - Data Engineering - Data Science - Machine Learning # 사용 방법 1. Spark Shell을 통해 데이터를 인터랙티브하게 분석할 수 있다. 기본적으로 분석을 위한 프로그래밍 언어로 - Scala - Python 을 지원하는데, Scala는 JavaVM 위에서 실행되어서 다른 Java라이브러리와 함께 사용할 수 있다고 한다. 2. Spark API를 사용하여 애플리케이션 안에 포함하여 사용할 ..
2021.11.03 -
[프로그래머스] 오픈채팅방
# 문제 설명 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있다. 채팅방에 누군가 들어오면 다음 메시지가 출력된다. "[닉네임]님이 들어왔습니다." 채팅방에서 누군가 나가면 다음 메시지가 출력된다. "[닉네임]님이 나갔습니다." 채팅방에서 닉네임을 변경하는 방법은 다음과 같이 두 가지이다. 채팅방을 나간 후, 새로운 닉네임으로 다시 들어간다. 채팅방에서 닉네임을 변경한다. 닉네임을 변경할 때는 기존에 채팅방에 출력되어 있던 메시지의 닉네임도 전부 변경된다. 예를 들어, Muzi가 나간후 다시 들어올 때, Prodo 라는 닉네임으로 들어올 경우 기존에 채팅방에 남아있던 Muzi도 Prodo로 다음과 같이 변경된다. "Prodo님이 들어왔습니다." "Prodo님이 들어왔습니다." "Prodo..
2021.11.03