[프로그래머스] 2 x n 타일링 - Python
·
☕️ 커리어 & 인터뷰 준비/코딩 테스트
📍문제https://school.programmers.co.kr/learn/courses/30/lessons/12900 📍풀이: DP로 경우의 수 메모이제이션타일을 배치하는 경우의 수를i. 세로 타일로 시작할 때 (| 모양 스타트)ii. 아닐 때 (= 모양 스타트) 크게 이렇게 구분할 수 있음 n = 1 이라면i. 1ii. 0-> 1 n = 2 i. 1ii. 1-> 2 n = 3i. n = 2의 경우의 수 (2) (| 모양 채웠으므로 나머지 2개 영역만 채우면 됨)ii. n = 1의 경우의 수 (1) (= 모양 채웠으므로 나머지 1개 영역만 채우면 됨) n = 4i. n = 3의 경우의 수ii. n = 2의 경우의 수 n = 5i. n = 4의 경우의 수ii. n = 3의 경우의 수 그렇다면 f(n)..
[Python] print(*list) - list 언패킹해서 출력하기
·
🤓 기술 학습 & 공부 기록/Python
📍print 안의 * 의 의미는?- 백준 10810 공 넣기 문제 N, M = map(int, input().split())basket = [0 for _ in range(N)]for i in range(M): x, y, z = map(int, input().split()) for j in range(x - 1, y): basket[j] = zprint(basket) # [1, 2, 1, 1, 0]print(*basket) # 1 2 1 1 10 - 리스트 앞에 * 를 붙이면 리스트를 언패킹해서 출력할 수 있게 해준다- join을 따로 쓸 필요가 없어서 간편하다 📍추가 예시- 백준 10812 바구니 순서 바꾸기 N, M = map(int, input().split())bas..
[Python] 3개의 수 한꺼번에 비교하기
·
🤓 기술 학습 & 공부 기록/Python
📍참고https://www.acmicpc.net/problem/5073 5073번: 삼각형과 세 변각 입력에 맞는 결과 (Equilateral, Isosceles, Scalene, Invalid) 를 출력하시오.www.acmicpc.net 📍코드아래처럼 3가지 경우를 한꺼번에 비교하는게 가능하다x == y == z == 0 이렇게 - 또한, 1 while True: x, y, z = map(int, input().split()) if x == y == z == 0: break nums = sorted([x, y, z], reverse=True) if nums[0] >= nums[1] + nums[2]: print("Invalid") elif x ==..
[Python] boolean을 int로 변환하기
·
🤓 기술 학습 & 공부 기록/Python
📍백준 13458 https://www.acmicpc.net/problem/13458 13458번: 시험 감독첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000)www.acmicpc.net boolean을 int로 변환하여 사용할 수 있다boolean값에 int를 씌우면- true => 1- false => 0 으로 변환된다 N = int(input())data = list(map(int, input().split()))B, C = map(int, input().split())answer = len(data)f..
[Python] 최종 원소가 int인 2차원 리스트 만들기
·
🤓 기술 학습 & 공부 기록/Python
📍참고https://www.acmicpc.net/problem/9063 9063번: 대지첫째 줄에는 점의 개수 N (1 ≤ N ≤ 100,000) 이 주어진다. 이어지는 N 줄에는 각 점의 좌표가 두 개의 정수로 한 줄에 하나씩 주어진다. 각각의 좌표는 -10,000 이상 10,000 이하의 정수이다. www.acmicpc.net 📍코드import sysN = int(input())# data = [ [x1, y1], [x2, y2], ... ]data = [list(map(int, sys.stdin.readline().rstrip().split())) for i in range(N)]xs = []ys = []for row in data: x, y = row xs.append(x) y..
[Python] 백준 2346 < 풍선 터뜨리기 >
·
🤓 기술 학습 & 공부 기록/Python
📍문제 링크https://www.acmicpc.net/problem/2346 2346번: 풍선 터뜨리기1번부터 N번까지 N개의 풍선이 원형으로 놓여 있고. i번 풍선의 오른쪽에는 i+1번 풍선이 있고, 왼쪽에는 i-1번 풍선이 있다. 단, 1번 풍선의 왼쪽에 N번 풍선이 있고, N번 풍선의 오른쪽에 1번 풍선www.acmicpc.net 📍알고리즘 분류- 자료구조- 덱 📍문제 풀이- 1부터 N까지의 원형 리스트가 있고, 각 원소는 -N 부터 N 중 0을 제외한 정수를 값으로 갖는다1부터 시작하여 각 정수만큼 왼쪽, 오른쪽으로 이동하며 터지는 풍선의 번호를 순서대로 출력한다 📍코드from collections import dequeN = int(input())# list로는 바로 생성 불가d = de..