일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 시나공
- 파이썬
- softeer
- kotlin
- 백준 알고리즘
- CJ UNIT
- 1과목
- 회고
- MYSQL
- C++
- 정보처리산업기사
- 데이터베이스
- BFS
- 스프링
- 소프티어
- 프로그래머스
- 문제풀이
- SQL
- 백준
- 공부일지
- programmers
- python
- java
- 알고리즘
- 백준알고리즘
- SW봉사
- 코틀린
- 코딩봉사
- 코딩교육봉사
- 자바
Archives
- Today
- Total
JIE0025
[구름][난이도1] 의좋은 형제 : 파이썬(python) 본문
728x90
https://level.goorm.io/exam/49088/%EC%9D%98%EC%A2%8B%EC%9D%80-%ED%98%95%EC%A0%9C/quiz/1
정답률이 높아서 풀어봤다 ㅋㅋㅋ 자바로도 풀어봐야지
문제 : 의좋은 형제
✅ 풀이과정
하루에 한번 번갈아가며, 서로에게 절반씩 준다고 했을 때
D번째 날엔 진우와 선우가 얼만큼을 갖고있는지를 출력하면 되는 문제이다.
만약 갖고있는 식량의 양이 홀수일 경우 식량을 통채로 넘겨준다고 하니 그것만 포인트로 기억하면 될 것 같다.
어떤 사람(one)이 다른 사람(other)에게 식량을 줄 때, 주는 양을 계산하면 다음과 같다.
( one // 2 ) + (one % 2)
즉 어떤 사람(one)에게서 저만큼을 빼주고, 다른 사람(other)에겐 더해주기만 하면 된다.
첫쨰날엔 진우가, 둘째날엔 선우가, 셋째날엔 진우가 본인의 것을 나눠주려고 하므로
진우 ⏩선우 ⏩ 진우 ... 순서이고, 반복문으로 돌려서 d번째 되는 날의 n1과 n2를 출력하면 끝!
✅ 정답코드
import sys
input = sys.stdin.readline
n1, n2 = map(int,input().split())
d = int(input())
def divide_remind(one, other):
return (one-(one//2 + one%2), other + (one//2 + one%2))
for i in range(1, d+1, 1):
if i%2 == 1 :
n1,n2 = divide_remind(n1,n2)
else:
n2,n1 = divide_remind(n2,n1)
print(n1, n2)
'Algorithm > 구름' 카테고리의 다른 글
[구름][알고리즘 먼데이][6주차] 제곱암호 : 파이썬(python) (0) | 2022.11.20 |
---|---|
[구름][알고리즘 먼데이][2주차] 폭탄구현하기 : 파이썬(python) (0) | 2022.11.06 |
[구름][난이도1] 의좋은 형제 : 자바(Java) (0) | 2022.10.30 |
[구름][현대모비스][예선] Dead or Arrive _ 파이썬(python) (0) | 2022.10.20 |