[BOJ / 백준] 2210번 숫자판 점프 파이썬(Python) 문제 풀이
·
Baekjoon
문제 문제 링크 : https://www.acmicpc.net/problem/2210 2210번: 숫자판 점프 111111, 111112, 111121, 111211, 111212, 112111, 112121, 121111, 121112, 121211, 121212, 211111, 211121, 212111, 212121 이 가능한 경우들이다. www.acmicpc.net CODE import sys from itertools import product input = sys.stdin.readline dx = [1, -1, 0, 0] dy = [0, 0, 1, -1] num = list(list(map(int, input().split())) for _ in range(5)) result = [] for..
[BOJ / 백준] 15686번 치킨 배달 파이썬(Python) 문제 풀이
·
Baekjoon
문제 문제 링크 : https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net CODE import sys from itertools import combinations input = sys.stdin.readline n, m = map(int, input().split()) city = list(list(map(int, input().split())) for _ in range(n)) result = 999999 house = []..
[BOJ / 백준] 17088번 등차수열 변환 파이썬(Python) 문제 풀이
·
Baekjoon
문제 문제 링크 : https://www.acmicpc.net/problem/17088 17088번: 등차수열 변환 크기가 N인 수열 A = [A1, A2, ..., AN]이 있을 때, 모든 1 ≤ i < N에 대해서, Ai+1-Ai가 모두 일치하면 등차수열이라고 한다. 예를 들어, [3], [6, 6, 6], [2, 8, 14, 20], [6, 4, 2]는 등차수열이고, [4, 5, 4], [6, 3, 1] www.acmicpc.net CODE def check(i, j): cnt = abs(i) + abs(j) # 연산 횟수; 1, 2번째 원소의 연산 횟수로 초기화 arr = [] arr.append(b[1] + j) diff = b[1] + j - b[0] - i # 공차 == 1, 2번재 원소의 ..
[BOJ / 백준] 3425번 고스택 파이썬(Python) 문제 풀이
·
Baekjoon
문제 문제 링크 : https://www.acmicpc.net/problem/3425 3425번: 고스택 각각의 입력값에 대해서, 해당하는 프로그램을 수행한 뒤, 출력값을 출력하면 된다. 출력값이란 스택에 저장되어 있는 숫자이다. 만약, 프로그램 에러가 발생하거나, 모든 수행이 종료됐을 때 www.acmicpc.net CODE import sys input = sys.stdin.readline def exec(commands, num): stack = [num] for cmd in commands: if cmd[:3] == "NUM": n = int(cmd[4:]) stack.append(n) elif not stack: return "ERROR" elif cmd == "POP": stack.pop() ..
[BOJ / 백준] 16943번 숫자 재배치 파이썬(Python) 문제 풀이
·
Baekjoon
문제 문제 링크 : https://www.acmicpc.net/problem/16943 16943번: 숫자 재배치 두 정수 A와 B가 있을 때, A에 포함된 숫자의 순서를 섞어서 새로운 수 C를 만들려고 한다. 즉, C는 A의 순열 중 하나가 되어야 한다. 가능한 C 중에서 B보다 작으면서, 가장 큰 값을 구해보자. C는 0 www.acmicpc.net CODE from itertools import permutations a, b = input().split() b = int(b) c = -1 a_list = [] for item in permutations(a): a_list.append(''.join(item)) for i in a_list: if i[0] == '0': # 0으로 시작하는 경우 c..
[BOJ / 백준] 16938번 캠프 준비 파이썬(Python) 문제 풀이
·
Baekjoon
문제 문제 링크 : https://www.acmicpc.net/problem/16938 16938번: 캠프 준비 난이도가 10, 30인 문제를 고르거나, 20, 30인 문제를 고르면 된다. www.acmicpc.net CODE import sys from itertools import combinations n, l, r, x = map(int, input().split()) a = list(map(int, sys.stdin.readline().split())) result = 0 a.sort() for i in range(n - 1): for j in range(n - 1, i, -1): if a[j] - a[i] >= x: for k in range(j - i): for m in combination..
[BOJ / 백준] 16937번 두 스티커 파이썬(Python) 문제 풀이
·
Baekjoon
문제 문제 링크 : https://www.acmicpc.net/problem/16937 16937번: 두 스티커 첫째 줄에 모눈종이의 크기 H, W, 둘째 줄에 스티커의 수 N이 주어진다. 다음 N개의 줄에는 스티커의 크기 Ri, Ci가 주어진다. www.acmicpc.net CODE import sys h, w = map(int, input().split()) n = int(input()) stk = list(list(map(int, sys.stdin.readline().split())) for _ in range(n)) result = 0 for i in range(n): for j in range(i + 1, n): r1, c1 = stk[i] r2, c2 = stk[j] if (r1 + r2
[BOJ / 백준] 16936번 나3곱2 파이썬(Python) 문제 풀이
·
Baekjoon
문제 문제 링크 : https://www.acmicpc.net/problem/16936 16936번: 나3곱2 나3곱2 게임은 정수 하나를 이용한다. 가장 먼저, 정수 x로 시작하고, 연산을 N-1번 적용한다. 적용할 수 있는 연산은 두 가지 있고, 아래와 같다. 나3: x를 3으로 나눈다. x는 3으로 나누어 떨어져야 www.acmicpc.net CODE n = int(input()) num = [int(x) for x in input().split()] result = [] first_value = num[0] max_pow = 0 # 첫번째 값 찾기 for i in range(n): temp = num[i] pow = 0 while temp % 3 == 0: temp //= 3 pow += 1 if..
[Python] 파이썬 sys.stdin.readline() 입력 받기 : 시간 초과 해결, 입출력 속도 개선
·
Lanuage/Python
🤔 input() 대신 sys.stdin.readline() 을 사용하는 이유 한두줄 입력받는 문제들은 input()을 사용해도 괜찮을 수 있지만, 여러줄 또는 반복문으로 입력 받는 경우에는 input()은 시간초과가 발생할 수 있습니다! 이럴 때, sys.stdin.readline() 을 사용합니다 코드에 깊은 복사를 사용한다면 복사 방법 선택으로도 실행 시간을 단축시킬 수 있습니다! 다음 글에 정리해두었습니다 📌 https://codesyun.tistory.com/198 [Python] 파이썬 리스트 복사 : 시간 초과 해결, 깊은 복사와 얕은 복사, copy, deepcopy, slicing, 2차원 리 더보기 백준 풀이를 하다 리스트를 깊은 복사할 때, deepcopy()를 사용한 코드가 slic..
[BOJ / 백준] 16922번 로마 숫자 만들기 파이썬(Python) 문제 풀이
·
Baekjoon
문제 문제 링크 : https://www.acmicpc.net/problem/16922 16922번: 로마 숫자 만들기 2, 6, 10, 11, 15, 20, 51, 55, 60, 100을 만들 수 있다. www.acmicpc.net CODE from itertools import combinations_with_replacement n = int(input()) result = [] numbers = [1, 5, 10, 50] for temp in combinations_with_replacement(range(4), n): sum = 0 for i in temp: sum += numbers[i] result.append(sum) print(len(set(result))) 풀이 우리의 편리한 파이썬은 ..