백준파이썬
[백준 1978번-파이썬/Python] 소수 찾기
http://acmicpc.net/problem/1978 {코드} def isPrime(n): if n
[백준 1011번-파이썬/Python] Fly me to Alpha Centauri
http://acmicpc.net/problem/1011 {코드} from math import sqrt for _ in range(int(input())): x, y = map(int, input().split()) dif = y-x if dif
[백준 10250번-파이썬/Python] ACM 호텔
http://acmicpc.net/problem/10250 {코드} for _ in range(int(input())): h, w, n = map(int, input().split()) a = n%h b = n//h+1 if a == 0: a = h b -= 1 print(a*100+b) {설명} 층 수는 n번 손님의 번호인 n을 층의 개수로 나눈 나머지가 되는데 만약 나머지가 0이라면 최상층인 h가 된다. 해당 층의 몇번째 방인지는 n을 층의 개수로 나눈 몫이 되는데 만약 층이 최상층이라면 몫에 1이 더해지므로 1을 뺀다. w가 사용되지 않는 이유는 w로 나누면 가로로 채우고 h를 쓰면 세로로 채우는데 엘리베이터와 가까운 방을 선호한다고 했으므로 결국 h를 사용하는 것이다.
[백준 2869번-파이썬/Python] 달팽이는 올라가고 싶다
http://acmicpc.net/problem/2869 {코드} from math import ceil a, b, v = map(int, input().split()) print(ceil((v-a)/(a-b))+1) {설명} 달팽이는 아침, 즉 올라갈 때 우물을 벗어날 수 있으므로 마지막 날은 올라가지만 내려오지는 않는다. 그러므로 전체 높이에서 아침에 올라가는 높이인 a만큼 뺀 후 이 높이를 올라가는데 걸리는 날을 구하고 거기에 다시 a만큼 올라가는데 걸리는 시간인 1을 더하면 된다. 이때 a를 뺀 만큼을 올라가려면 하루에 a만큼 올라가 b만큼 내려오기 때문에 실질적으로 하루에 a-b만큼 올라가기 때문에 (v-a)를 (a-b)로 나눈 값을 올림 하면 된다.
[백준 1193번-파이썬/Python] 분수 찾기
http://acmicpc.net/problem/1193 {코드} n = int(input()) i = 0 while True: i += 1 n -= i if n
[백준 2292번-파이썬/Python] 벌집
http://acmicpc.net/problem/2292 {코드} n = int(input()) cnt = 1 while n > 1: n -= 6*cnt cnt += 1 print(cnt) {설명} 먼저 규칙을 알기 위해 다음 표를 봐주시기 바랍니다. 숫자 범위 답 마지막 수의 수식 지난 범위와 6의 계수 차 1 1 1 + (6*0) 0 2~7 2 1 + (6*1) 1 8~19 3 1 + (6*3) 2 20~37 4 1 + (6*6) 3 위의 표를 보면 지난 범위와의 계수 차와 답은 1 차이라는 것을 알 수 있는데 이는 시작점도 포함하기 때문입니다. 그러면 입력받은 수에서 6의 배수별로 빼가며 1보다 작을 때까지 반복하면 됩니다. 이때 1보다 작다라고 하는 이유는 시작이 1이기 때문에 수의 단계의 범위가..
[백준 2839번-파이썬/Python] 설탕 배달
http://acmicpc.net/problem/2839 {코드} n = int(input()) cnt = 0 while True: if n % 5 == 0: print(cnt + n // 5) break n -= 3 cnt += 1 if n 15//5 굉장히 당연한 식인데요, 이를 이용해 5의 배수가 될때까지 3을 계속해서 빼주면 세 가지의 경우 중 하나가 발생합니다. n이 5의 배수인 경우 - 이때는 n을 5로 나눈 몫과 현재 봉지의 개수를 더한 값을 출력함 n이 0인 경우 - 이때도 n을 5로 나눈 나머지가 0이므로 결과적으로 봉지의 개수 출력 n이 0보다 작은 경..
[백준 1712번-파이선/Python] 손익분기점
http://acmicpc.net/problem/1712 {코드} a, b, c = map(int, input().split()) if c
[백준 1316번-파이썬/Python] 그룹 단어 체커
http://acmicpc.net/problem/1316 {코드} ans = 0 for _ in range(int(input())): word = input() new_word = '' isTrue = True for c in word: i, j = word.find(c), word.rfind(c) if word.count(c) != j-i+1: isTrue = False break ans += isTrue print(ans) {설명} *True는 숫자 1의 값을, False는 숫자 0의 값을 가지고 있습니다. 위 방법은 어떤 문자에 대해 그 문자의 처음과 마지막 위치를 통해 문자들이 연결되어 있는지 아닌지 확인합니다. 예시를 들어 설명해보겠습니다. -그룹 문자인 예 word라는 변수가 있고 'hhaap..