beak 2562 풀이

고민 많이했다...

문제

9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오.

예를 들어, 서로 다른 9개의 자연수

3, 29, 38, 12, 57, 74, 40, 85, 61

이 주어지면, 이들 중 최댓값은 85이고, 이 값은 8번째 수이다.

입력
첫째 줄부터 아홉 번째 줄까지 한 줄에 하나의 자연수가 주어진다. 주어지는 자연수는 100 보다 작다.

출력
첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 몇 번째 수인지를 출력한다.

예제 입력 1 
3
29
38
12
57
74
40
85
61

예제 출력 1 
85
8

접근방법

예제입력값을 어떻게 접근할지 많은 고민을 했다.

리스트를 넣어보면 어떨까 생각에
a=list(int,input().split()) 해보았지만 아니였다.

그다음은 예제 입력값 그대로 출력 할수 있는 방법을 고민했다.

그러면 리스트 메서드 append를 사용하여 하나씩 추가하면 한개씩 차례대로 입력될것이다.

반복적으로 추가하기 위해서는 어떻게 해야할까?
그렇다. 반복문을 사용해야된다는 걸 알수 있다. 입력값은 9이니깐

for i in range(9) 코드짜면 9번 반복할수 있는 조건이 되고 입력값 횟수와 맞아떨어진다.

그다음 리스트 메서드 append사용하여 빈배열 a에 할당한다.

a= [] # 빈배열
for i in range(9):
    a.append(int(input())) #이코드는 빈배열 필수!
print(max(a)) # 최댓값구하기
print(a.index(max(a))+1) # 인덱스 후 출력값에 맞추어서 +1 

풀이

a =[ ]
빈 배열 할당
for i in range(9):
반복문을 통해 9번 입력 할수 있는 코드 생성

생성후 가만히 두면 생성이 되는가?! 안된다..!!

리스트 메서드 append() 함수 적용으로 반복을 통해 a 빈배열에 할당한다.

최댓값은 max() 함수사용으로 최댓값 출력
8번째 값 표현은 index(max(a))+1하면 7+1나와서 8이 출력된다!

필요문법

1.리스트 
2.리스트메서드
3.반복문 for
4.range() 함수
5.index()함수

좋은 웹페이지 즐겨찾기