백준(30)
-
[기본수학1] 부녀회장이 될테야
2775번: 부녀회장이 될테야 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다 www.acmicpc.net 제목이 굉장히 귀여운 문제였다. 이렇게 사람이 많이 살고있는 아파트의 부녀회장이 되려면 쉽지 않을 것 같다. 예제를 바탕으로 몇 번 그려보면 규칙성을 쉽게 발견할 수 있었다. 재귀적으로 풀어봤다. 제출코드 from sys import stdin test_count = int(stdin.readline()) test_case = [] for i in range(0, test_count): case_k = int(stdin.readline()) case_n = int(stdin.readline()) tes..
2021.02.24 -
[기본수학1] ACM 호텔
10250번: ACM 호텔 프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수 www.acmicpc.net 엘레베이터를 기준으로 각 층의 1호부터 사람이 차는 이상한...? 호텔이기 때문에 사실 너비인 W 값은 아예 필요가 없다. 입력값도 < 99 까지로 정의되어 있기 때문에... 제출코드 from sys import stdin import math test_count = int(stdin.readline()) test_case = [] for i in range(0, test_count): append_case = list(map(int, stdin.re..
2021.02.23 -
[기본수학1] 달팽이는 올라가고 싶다
2869번: 달팽이는 올라가고 싶다 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) www.acmicpc.net 1년 전에 공부를 막 시작하려고 할 때, 살짝 배운 자바로 어떻게든 풀어보려고 이렇게 저렇게 시도해보다가 실패한 흔적... 이번엔 일필휘지로 제출해서 끝났는데 참 감개가 무량대수일세. 공부를 본격적으로 시작해보려고 하던 찰나에 건드려본 문제였다. 좀처럼 풀지 못하다 보니 내가 적성이 아닌가 하는 고민도 들었던 것 같다. 대단한 기능이나 지식이 필요한 문제는 아니었는데, 프로그래밍적 혹은 수학적 사고라고 일컫는 부분이 아예 없던 시기여서 정말 힘들었었다. 지금 보면 쉬운 문제인데 그때는 왜 그렇게 힘들었는지.... 그만큼..
2021.02.20 -
[기본수학1] 분수찾기
1193번: 분수찾기 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. www.acmicpc.net 분수라는 말에 현혹되지 않고, x / y 형태의 숫자로 인식하면 편하다. 대각선으로 배치된 수의 합은 항상 같으므로 규칙성을 찾으면 된다. 2차월 배열 데이터를 1차원으로 변형해서 다루는 문제는 앞으로도 많이 나올 듯? 제출코드 target = int(input()) sum_x_y = 1 line_max = 0 while True: sum_x_y += 1 if ((target * 2) - (sum_x_y*(sum_x_y-1)))
2021.02.20 -
[기본수학1] 벌집
2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌 www.acmicpc.net 제출 코드 target = int(input()) now = 1 count = 1 while True: if target
2021.02.20 -
[기본수학1] 손익분기점
1712번: 손익분기점 월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 www.acmicpc.net 첫 제출 코드 input = input() input_split = input.split(" ") fixed_price = int(input_split[0]) addi_price = int(input_split[1]) sale_price = int(input_split[2]) if addi_price >= sale_price: print(-1) else: print(fixed_price // (sale_price - addi_price) + 1) 리팩토링 코드 (가독..
2021.02.20