백준 2562번: 최댓값

2023. 8. 19. 22:14개인활동/코테

nums = [int(input()) for _ in range(9)]
print(max(nums), nums.index(max(nums))+1, sep="\n")

이번 문제... 한줄씩 불러서 list에 어떻게 담을지가 제일 문제였다.

split("\n") 얘는 아무런 효과가 없었고, splitlines() 또한 아무런 효과가 없었다.

 

그래서 반복문을 사용하려고 하였는데, 문제를 제대로 안읽은 나머지 9개의 자연수가 들어온 다는 것을 간과하고 있었다.

 

그리고 또 간과하고 있던 점, 몇번째에 위치하는지를 보여줘야 하는데 list 인덱스를 생각하고 출력하면 안된다!!!

이를 모르고 nums.index(max(nums))만 넣고 출력했다가 틀려버렸다.

 

문제는 똑바로 읽자!

 

그렇다면 오늘도 숏코드 뜯어보기

 

print(*max((int(input()),i+1)for i in range(9)))

궁금한점

1. *max((int(input()),i+1)for i in range(9)) 이 코드만 잘 해석해보면 될 것 같다.

 

일단 i+1의 경우에는 위치를 출력하고자 한 것이고..

 

하나씩 input을 받아 정수형으로 변환해주고 max함수에 넣어주는데 ..

입력받은 각 값들을 튜플로 넣어준 것 같다.

 

괄호의 위치도 좀 제대로 봐야할 듯

 

*max( ( int ( input() ), i+1 ) for i in range(9) )

 

현재 *max 안에 input받은 최대값과 i+1이 함께 존재한다.

두 값을 unpacking해주되 두 값 모두 입력받은 9개와 관련이 있기에 한번에 묶어둔 것 같다.

 

엥 해석 완

 

굿


오늘도 백준 굿~

'개인활동 > 코테' 카테고리의 다른 글

백준 10813번: 공바꾸기  (0) 2023.08.20
백준 10810번: 공넣기  (0) 2023.08.20
백준 10818번: 최소, 최대  (0) 2023.08.18
백준 10871번: X보다 작은 수  (0) 2023.08.17
백준 10807번 : 개수세기  (0) 2023.08.16