문제 바로가기
https://www.acmicpc.net/problem/2562


관련 알고리즘
- 해당 없음
정답 및 해설
9개의 정수를 입력받아 그중 최댓값과 최댓값의 인덱스(몇 번째)를 출력하는 문제이다.
값이 하나 입력될 때마다 기존 최댓값과 비교해서 값과 인덱스를 업데이트하여 간단하게 해결할 수 있다.
C++
더보기
#include<bits/stdc++.h>
using namespace std;
int main(){
int MAX=0,idx,n;
for(int i=1;i<10;i++){
cin>>n;
if(n>MAX){
MAX=n;
idx=i;
}
}
cout<<MAX<<'\n'<<idx;
}
| Line | 해설 |
| 4 | 최댓값을 저장할 변수 MAX, 몇 번째에 있는지 저장할 idx 를 선언했다. 입력받은 자연수끼리의 대소비교에 방해가 되지않도록 MAX를 0으로 초기화했다.1) |
| 5 | i 를 1 ~ 9 범위내에서 반복한다. 최댓값이 등장했을 때 '몇 번째에 있는지'를 i 로 파악할 수 있도록 했다. |
| 6~10 | cin 함수로 정수를 입력받은 후, if 조건문으로 기존 최댓값(MAX)와 입력받은 자연수(n)의 대소를 비교한다. n이 더 크다면, MAX는 n을, idx는 i를 대입하여 최댓값과 그 수의 인덱스를 저장한 후 마지막에 출력한다. |
1) 값을 초기화할때는 알고리즘 진행에 방해가 되지 않도록 설정해야 한다. 예를 들어 위 문제에서 MAX를 10으로 설정하게 된다면, 입력받을 9개의 자연수 중 10보다 크거나 같은 수가 없는 경우에 MAX는 10, idx는 쓰레기값으로 오답을 출력하게 되니 유의하자.
C
더보기
#include<stdio.h>
int main(){
int MAX=0,idx,n;
for(int i=1;i<10;i++){
scanf("%d",&n);
if(n>MAX){
MAX=n;
idx=i;
}
}
printf("%d\n%d",MAX,idx);
}
| Line | 해설 |
| 4 | 최댓값을 저장할 변수 MAX, 몇 번째에 있는지 저장할 idx 를 선언했다. 입력받은 자연수끼리의 대소비교에 방해가 되지않도록 MAX를 0으로 초기화했다. |
| 5 | i 를 1 ~ 9 범위내에서 반복한다. 최댓값이 등장했을 때 '몇 번째에 있는지'를 i 로 파악할 수 있도록 했다. |
| 6~10 | scanf 함수로 정수를 입력받은 후, if 조건문으로 기존 최댓값(MAX)와 입력받은 자연수(n)의 대소를 비교한다. n이 더 크다면, MAX는 n을, idx는 i를 대입하여 최댓값과 그 수의 인덱스를 저장한 후 마지막에 출력한다. |
Python
더보기
MAX=0
for i in range(1,10):
n=int(input())
if n>MAX:
MAX=n
idx=i
print(f'{MAX}\n{idx}')
| Line | 해설 |
| 2 | i 를 range(1,10) 함수를 사용해 1~9 범위의 값에서 반복하도록 설정한다. |
| 3 | input()으로 입력받은 값을 int 함수를 사용해 정수로 변환한다. |
| 4~6 | if 조건문으로 기존 최댓값(MAX)와 입력받은 자연수(n)의 대소를 비교한다. n이 더 크다면, MAX는 n을, idx는 i를 대입하여 최댓값과 그 수의 인덱스를 저장한 후 마지막에 출력한다. |
| 7 | 파이썬에서 제공하는 f-string 문법을 사용하여 출력하였다.1) |
1) f-string 문법은 파이썬 문자열 사이에 변수를 입력할 때 유용하다. 기존 문자열 "STRING"의 따옴표(" or ') 앞에
f를 붙여서 정의하고 문자열 사이에서 변수는 {}로 감싸서 표기한다.
ex] Name="Klare"; print(f"My Name is {Name}") 출력 : My Name is Klare
'Coding > BOJ' 카테고리의 다른 글
| [BOJ 백준] 2675 - 문자열 반복 (C++ / Python) (1) | 2023.11.06 |
|---|---|
| [BOJ 백준] 2577 - 숫자의 개수 (C / C++ / Python) (0) | 2023.11.05 |
| [BOJ 백준] 2439 - 별 찍기 - 2 (C / C++ / Python) (0) | 2023.11.03 |
| [BOJ 백준] 1157 - 단어 공부 (C / C++) (1) | 2023.11.03 |
| [BOJ 백준] 1152 - 단어의 개수 (C / C++ / Python) (2) | 2023.11.01 |