[그리디] 코딩테스트 문제 TIL (5와 6의 차이) - 백준 2864번

말하는 감자·2024년 12월 26일
1
post-thumbnail

1. 오늘의 학습 키워드

  • 그리디

2. 문제: 2864. 5와 6의 차이

문제

상근이는 2863번에서 표를 너무 열심히 돌린 나머지 5와 6을 헷갈리기 시작했다.

상근이가 숫자 5를 볼 때, 5로 볼 때도 있지만, 6으로 잘못 볼 수도 있고, 6을 볼 때는, 6으로 볼 때도 있지만, 5로 잘못 볼 수도 있다.

두 수 A와 B가 주어졌을 때, 상근이는 이 두 수를 더하려고 한다. 이때, 상근이가 구할 수 있는 두 수의 가능한 합 중, 최솟값과 최댓값을 구해 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 두 정수 A와 B가 주어진다. (1 <= A,B <= 1,000,000)

출력

첫째 줄에 상근이가 구할 수 있는 두 수의 합 중 최솟값과 최댓값을 출력한다.

예제 입력 1 복사

11 25

예제 출력 1 복사

36 37

예제 입력 2 복사

1430 4862

예제 출력 2 복사

6282 6292

예제 입력 3 복사

16796 58786

예제 출력 3 복사

74580 85582

3. 문제 풀이

이번 문제는 매우 간단하기 때문에 바로 문제를 풀고 구현까지 하도록 하겠습니다.

해당 문제는 두 수 A와 B가 주어졌을 때, 이 두 수를 더했을 때 두 수의 가능한 합 중, 최솟값과 최댓값을 구하는 문제입니다.

두 수 A와 B에서 5를 6으로 볼 수도 있고, 6을 5로도 볼 수 있다고 합니다.

그렇다는 것은 최댓값은 A와 B모두 5를 6으로 바꿀 경우 최대가 되고, 최솟값은 A, B모두 6을 5로 바꾸면 됩니다.

코드는 다음과 같습니다.

import sys
A, B = sys.stdin.readline().split()
print(int(A.replace('6', '5')) + int(B.replace('6', '5')), int(A.replace('5', '6')) + int(B.replace('5', '6')))
  • 시간 복잡도: O(N), N은 10610^6이하이므로 가능합니다.
  • 결과:
profile
할 수 있다

0개의 댓글

관련 채용 정보