참고로 문제의 질문은 9개의 숫자를 한줄에 하나씩 입력받고, 결과값으로 가장 큰 수와, 가장 큰 수가 몇번째였는가? 입니다.
2562번 - 최댓값
f'{input()}\n{i+1}'for i in range(9)
로부터 여러 숫자들과 사이 줄바꿈이 포함된 "문자열"의 "리스트"가 생성이 되고,
max()함수가 이 리스트로부터 최댓값을 어떻게든 뽑아내어 print()에 전달하여 출력이 되는 구조입니다.
한가지 알아야 할 점은, 정수의 리스트가 아니라는 점이죠.
["111\n1","20\n2", ... ("(맨 앞자리 숫자가 1인 7개의 정수)\n(i+1)"로 표현되는 문자열들]의 형태가 됩니다.
문자열들을 비교하여 문자열의 최댓값을 뽑아내기 때문에, "111\n1"이 아니라 "20\n2"가 출력됩니다.
댓글을 작성하려면 로그인해야 합니다.
00osos 4년 전 1
이 코드에서 f'{input()}\n{i+1} 부분에서 input으로 9개까지의 값을 받고서 멈추는 것은 i가 0부터 8까지 실행되었기 때문이라는 것은 알고 있는데,
이 과정에서 input으로 인해 매 줄마다 값을 하나씩 입력하여야 하는데 그렇다면 왜 {i+1}은 매줄마다 나오지 않고, 마지막 줄에만 생성되나요?
제가 스스로 해석해 보았을때는 i+1이 for문보다 먼저 나와서 i가 아직 정해지지 않아 그런거 같은데 맞는지 궁금합니다.
만약 틀리다면, 왜 {i+1}이 마지막에만 나오는지 알려주세요!