Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 금융문자분석경진대회
- 자연어처리
- ubuntu
- 맥북
- 코로나19
- github
- ChatGPT
- leetcode
- programmers
- Git
- Real or Not? NLP with Disaster Tweets
- 편스토랑
- AI 경진대회
- Kaggle
- 프로그래머스 파이썬
- Baekjoon
- hackerrank
- 편스토랑 우승상품
- 캐치카페
- 우분투
- SW Expert Academy
- 파이썬
- Docker
- 백준
- gs25
- PYTHON
- 더현대서울 맛집
- dacon
- 프로그래머스
- 데이콘
Archives
- Today
- Total
솜씨좋은장씨
[BaekJoon] 2997번 : 네 번째 수 (Python) 본문
728x90
반응형
코딩 1일 1문제! 오늘의 문제는 백준의 네 번째 수 입니다.
👨🏻💻 문제 풀이
1. 입력 받은 숫자 리스트를 정렬 합니다.
sorted_numbers = sorted(numbers)
2. 정렬한 리스트에서 첫번째 숫자와 두번째 숫자의 차이 ( diff_1 )
두번째 숫자와 세번째 숫자의 차이 ( diff_2 ) 를 구합니다.
diff_1 = sorted_numbers[1] - sorted_numbers[0]
diff_2 = sorted_numbers[2] - sorted_numbers[1]
3. diff_1 == diff_2 이면서
마지막 숫자 + diff_1 이 100보다 큰 경우
-> 정답을 첫번째 숫자 - diff_1 으로
마지막 숫자 + diff_1 이 100보다 작거나 같은 경우
-> 정답을 마지막 숫자 + diff_1 으로
if diff_1 == diff_2:
if sorted_numbers[-1] + diff_1 <= 100:
answer = sorted_numbers[-1] + diff_1
else:
answer = sorted_numbers[0] - diff_1
4. diff_1 * 2 == diff_2 인 경우
-> 정답을 중간 숫자 + diff_1 으로
elif diff_1 * 2 == diff_2:
answer = sorted_numbers[1] + diff_1
5. diff_1 == diff_2 * 2 인 경우
-> 정답을 첫번째 숫자 + diff_2 으로
elif diff_1 == diff_2 * 2:
answer = sorted_numbers[0] + diff_2
전체 코드는 아래를 참고해주세요.
👨🏻💻 코드 ( Solution )
def fourth_number(numbers):
sorted_numbers = sorted(numbers)
diff_1 = sorted_numbers[1] - sorted_numbers[0]
diff_2 = sorted_numbers[2] - sorted_numbers[1]
if diff_1 == diff_2:
if sorted_numbers[-1] + diff_1 <= 100:
answer = sorted_numbers[-1] + diff_1
else:
answer = sorted_numbers[0] - diff_1
elif diff_1 * 2 == diff_2:
answer = sorted_numbers[1] + diff_1
elif diff_1 == diff_2 * 2:
answer = sorted_numbers[0] + diff_2
return answer
if __name__ == "__main__":
numbers = list(map(int, input().split()))
print(fourth_number(numbers))
'Programming > 코딩 1일 1문제' 카테고리의 다른 글
[BaekJoon] 10826번 : 피보나치 수 4 (Python) (0) | 2022.06.18 |
---|---|
[BaekJoon] 14489번 : 치킨 두 마리 (...) (Python) (0) | 2022.06.17 |
[BaekJoon] 10870번 : 피보나치 수 5 (Python) (0) | 2022.06.15 |
[BaekJoon] 1292번 : 쉽게 푸는 문제 (Python) (0) | 2022.06.14 |
[BaekJoon] 5585번 : 거스름돈 (Python) (0) | 2022.06.13 |
Comments