[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))) 풀이 우리의 편리한 파이썬은 ..
[BOJ / 백준] 16917번 양념 반 후라이드 반 파이썬(Python) 문제 풀이
·
Baekjoon
문제 문제 링크 : https://www.acmicpc.net/problem/16917 16917번: 양념 반 후라이드 반 현진 치킨에서 판매하는 치킨은 양념 치킨, 후라이드 치킨, 반반 치킨으로 총 세 종류이다. 반반 치킨은 절반은 양념 치킨, 절반은 후라이드 치킨으로 이루어져있다. 양념 치킨 한 마리의 가격은 www.acmicpc.net CODE a, b, c, x, y = map(int, input().split()) if a + b < 2 * c: print(a * x + b * y) else: print(2 * c * min(x, y) + min(a, 2 * c) * max(0, x - y) + min(b, 2 * c) * max(0, y - x)) 풀이 후라이드와 양념을 각각 한마리씩 사는 것..
[BOJ / 백준] 16968번 차량 번호판 1 파이썬(Python) 문제 풀이
·
Baekjoon
문제 문제 링크 : https://www.acmicpc.net/problem/16968 16968번: 차량 번호판 1 00부터 99까지 총 100가지 중에서 00, 11, 22, 33, 44, 55, 66, 77, 88, 99가 불가능하다. www.acmicpc.net 입력 복사 > 예제 입력 1 dd > 예제 입력 2 cc > 예제 입력 3 dcdd CODE 1 s = input() if s[0] == 'c': answer = 26 else: answer = 10 for i in range(1, len(s)): if s[i] == 'c': if s[i - 1] == 'c': answer *= 25 else: answer *= 26 else: if s[i - 1] == 'd': answer *= 9 el..
[Python] 파이썬 리스트 : 선언, 연산자, 요소 추가, 요소 제거, in / not in
·
Lanuage/Python
리스트 (list) - 여러 가지 자료를 모아 사용할 수 있게 해주는 특별한 형태의 자료 - 한 가지 또는 여러 종류의 자료형으로 구성할 수 있다 - 리스트 내부에 넣는 자료를 요소 (element)라고 부른다 - (예) array = [273, 32, 103, "문자열", True, False] print(array) # [273, 32, 103, '문자열', True, False] 리스트 선언 - 대괄호[ ]에 자료를 쉼표로 구분해서 입력한다 - 인덱스는 1부터 시작 [요소, 요소, 요소 ... ] 리스트의 사용 1. (일반적인 사용) 인덱스로 접근 list_a = [273, 32, 103, "문자열", True, False] list_a[0] = "변경" print(list_a) # ['변경', 3..