백준 알고리즘 | 10817 : 세 수 (Python / 파이썬)
세 수 성공분류
시간 제한 |
메모리 제한 |
제출 |
정답 |
맞은 사람 |
정답 비율 |
1 초 |
256 MB |
103079 |
46211 |
40368 |
46.538% |
https://www.acmicpc.net/problem/10817
10817번: 세 수
첫째 줄에 세 정수 A, B, C가 공백으로 구분되어 주어진다. (1 ≤ A, B, C ≤ 100)
www.acmicpc.net
문제
세 정수 A, B, C가 주어진다. 이때, 두 번째로 큰 정수를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 세 정수 A, B, C가 공백으로 구분되어 주어진다. (1 ≤ A, B, C ≤ 100)
출력
두 번째로 큰 정수를 출력한다.
알고리즘 분류
백준 알고리즘 # 10817번 : 세 수
# 풀이 1
a, b, c = map(int, input().split())
x = []
x.append(a)
x.append(b)
x.append(c)
result = sorted(x, reverse = True)
print(result[1])
# 풀이 2
L = list(input().split())
for i in range(len(L)):
L[i] = int(L[i])
sorted_L = sorted(L, reverse = True)
print(sorted_L[1])
풀이
DFS, BFS 문제를 풀고 나서 풀어서 그런지 정말 쉬웠어요😆
풀이1은 a, b, c를 정수로 받은 뒤 변수 x를 리스트 []로 설정해서 append(추가)해주고
추가한 x를 sorted 함수를 사용해서 result 변수로 reverse = True로 내림차순으로 큰 순서대로 정렬한 뒤
그 중 2번째(기계는 0부터 셈)인 result[1]를 출력하면 끝!
풀이1보다 좀 더 간단하게 풀이한 풀이2를 보면
변수 L로 입력되는 것들을 처음부터 list로 입력받고
for문으로 L의 len만큼 반복하면서 list에 있는 것들을 str(문자열)에서 int(정수)로 바꿔줬어요.
이렇게 바꿔주는 것이 별거 아닌 것 같아 보여도 큰 차이가 나는데요🙌
['20', '30', '10']
[20, 30, 10]
두 개의 차이가 보이시나요?
분명 숫자로 보이지만 int(정수)로 변환하지 않은 str(문자열)은
기계는 숫자로 인식하지 않고 문자로 인식합니다.
이것을 유의해서 int(정수)로 변환시켜 변수 L의 리스트의 값들을 초기화 시킨 후
마찬가지로 sorted_L 변수로 sorted 함수와 reverse = True, 내림차수로 정렬해서 큰 수부터 나오게 하고
sorted_L[1]을 출력하면 2번째로 큰 정수가 출력된다. 끄-읏!👏
자세한 코드가 궁금하신 분들은 아래 GitHub 참고해주세요🙏
wook2124/Algorithm
Practice algorithm. Contribute to wook2124/Algorithm development by creating an account on GitHub.
github.com
최종 소스코드