본문 바로가기

반응형

코딩테스트(python)

(32)
백준 10757번 파이썬 1. 문제 2. 설명 a와 b를 입력받아 두 수의 합을 출력한다. a와 b의 입력은 map을 사용하여 받고 split해준다. 3. 코드 a, b = map(int, input().split()) print(a+b)
백준 2839번 파이썬 1. 문제 2. 설명 봉지의 최소 개수를 출력해야하므로, While 반복문을 사용하여 총 무게가 0kg보다 작거나 같을때까지 반복한다. 5로 나눠 0이 된다면 count에 5를 나눈 숫자를 더해주고, 나누어 떨어지지 않는다면 all에서 3을 빼고 count에 1을 더한다. 0으로 나누어 떨어지지 않을 시 -1을 출력한다. 3. 코드 all=int(input()) count = 0 while all >= 0: if all % 5 == 0: count += all // 5 print(count) break all -= 3 count += 1 else: print(-1) 오늘 문제는 접근 방식 자체를 생각해내지 못했다..ㅠㅠ 수학문제는 역시 어렵다! 분발하자..!
백준 2775번 파이썬 1. 문제 2.설명 이중 for문을 사용하는 방법까진 맞았는데... 알고리즘이 약간 잘못되어서 계속 틀렸다 ㅠㅠ 결국 정답을 보며 공부하기 시작했는데, 리스트 comprehension 방식은 처음이라 코드를 이해하는데에 꽤 오랜 시간을 들였다! f0 = [x for x in range(1, num+1) -> [1,2,3,4,5,6 ... num] 0번째 층에 대한 리스트로 1부터 num까지의 수가 리스트에 들어간다. fo[i] 값에 f0[i-1]과 자기자신을 더해주며 각 호실의 사람 수를 변경해준다. 예를 들어, floor가 2고 num이 3이라면 0층 [1,2,3] 1층 [1,3(1+2),3] -> [1,3,6(3+3)] 이 되어 1층 3호실에 해당하는 값인 6을 반환하게 된다. 3.코드 t = int..
백준 10250번 파이썬 1. 문제 2.해설 오늘은 처음으로 시간초과가 뜨지 않았다! 다만 중간에 착각해서 층과 호의 값을 바꿔서 넣는 실수를..ㅠㅠ 그래도 지금까지 푼 문제 중 가장 접근을 잘 했던 것 같아 뿌듯하다! 층 : N%H 호: N//H +1 ( // => 나누기 연산 후 소수점 이하의 수를 버리고, 정수 부분의 수만 구함) 만약 N%H가 0 인 경우, 층: H 호: N//H 3.코드 T = int(input()) for i in range(0,T): H, W, N = map(int, input().split()) if N%H!=0: print((N%H)*100+((N//H)+1)) else: print(H*100+N//H)
백준 2869번 파이썬 1. 문제 2.해설 처음엔 간단한 문제라고 생각하고 while문으로 접근하여 시간초과가 떴다. 정답은 숫자가 입력되면 바로바로 답이 출력되도록 코드를 짜야하는 것이였다. 식을 세워보면, a*day-b*(day-1) = v ==> 정상에 도착하면 미끄러지지 않기 때문 3.코드 import math a, b, v = map(int, input().split()) day = (v-b)/(a-b) print(math.ceil(day))
백준 1193번 파이썬 1.문제 2.설명 1/1 -> (1/2->2/1) -> (3/1->2/2->1/3) -> (1/4->2/3->3/2->4/1) ... 짝수 열: 분자 오름차순 정렬/ 분모 내림차순 정렬 홀수 열: 분자 내림차순 정렬/ 분모 오름차순 정렬 변수 x는 위치를 찾기 위해 사용한다. 변수 x가 대각선 line보다 작아질 때, 해당하는 line에 찾고있는 x가 위치한 것으로 판단한다. 3.코드 x = int(input()) line = 1 while x > line: x -= line line += 1 if line % 2 == 0: a = x b = line - x + 1 else: a = line - x + 1 b = x print(a, "/", b, sep = "") 나는 이중for문을 사용하여 풀었는데, ..
백준 2292번 파이썬 1. 문제 2. 풀이 지나가야하는 방의 갯수가 1씩 증가하 -> 각 case에 해당하는 숫자들의 합이 6의 배수의 형태로 증가 1개 지나는 경우: 1 -> 1개 2개 지나는 경우: 2~7 -> 6개 3개 지나는 경우: 8~19 -> 12개 4개 지나는 경우: 20~37 ->18개 ... temp -> 각 case에 해당하는 숫자의 마지노선을 저장하는 변수(1,7,19 등) piles -> 지나가는 방의 갯수 3. 코드 num=int(input()) temp = 1 piles = 1 while temp < num: temp = temp + (6 * piles) piles = piles + 1 print(piles) 6의 배수로 증가하는 규칙은 파악했는데, 접근을 이상하게(?) 해서 잠깐 정신이 혼미했지만...
백준 1712번 파이썬 1. 문제 2. 풀이 판매 갯수를 n이라고 하면, 손익분기점은 c x n = a+(b x n)이 된다. -> n = a/(c-b) 이익은 손익분기점을 넘어야 발생하므로, n 에 1을 더해준 값이 최초로 이익이 발생하는 판매량이 된다. 생산가격이 판매가격보다 비싸거나 같으면 손익분기점이 존재하지 않는다. 3. 코드 a, b, c = map(int, input().split()) if b>=c: print(-1) else: print(int(a/(c-b)+1))

반응형