티스토리 뷰
Solved.ac Class 완전정복 프로젝트
Class : 1 ~ 1 ++
링크
https://www.acmicpc.net/problem/2562
문제
9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오.
예를 들어, 서로 다른 9개의 자연수
3, 29, 38, 12, 57, 74, 40, 85, 61
이 주어지면, 이들 중 최댓값은 85이고, 이 값은 8번째 수이다.
입력
첫째 줄부터 아홉 번째 줄까지 한 줄에 하나의 자연수가 주어진다. 주어지는 자연수는 100 보다 작다.
출력
첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 몇 번째 수인지를 출력한다.
접근방법
문제에서는 최댓값과 최대 값이 가지는 인덱스 번호를 요구하고 있다.
우리가 최대값을 찾아가는 과정에서 인덱스 정보도 함께 기억해야 한다는 의미이다.
반복문을 통해 하나씩 접근하고 최댓값을 비교하면서, 해당 인덱스도 함께 생각해주면 된다.
이는 반복문 For문에 대해서 조금만 인지하고 있다면, 어렵지 않게 풀것이다.
혹시라도, 문제가 쉬워서 아쉽다면, 아래 접은 글을 펼쳐보자.
문자 자체는 어렵지 않지만, 코딩 테스트를 연습 중이라면, 다른 부분에서 공부할만한 점이 있는 문제다.
나와 같이 입력과 처리의 과정을 함수로 분리한다면, 아마 반환 값 때문에 고민했을지도 모른다.
반환 값이 들어가는 자리는 자료형이 들어가는 위치이므로, 기본형(Primitive Type)과 참조형(Reference Type) 모두 사용이 가능하다. 아직 익숙하지 않다면 연습해 보면 좋을 것 같다.
public char Test1 (){
return 0;
}
public String Test2 (){
return null;
}
public ArrayList<Integer> Test3 (){
return null;
}
코드
import java.util.Scanner;
public class BJ_2562 {
public static void main(String[] args) {
BJ_2562 test = new BJ_2562();
}
public BJ_2562 (){
Scanner sc = new Scanner(System.in);
int[] data =new int[9];
//데이터 입력
for (int i = 0 ; i < data.length ; i++){
data[i] = sc.nextInt();
}
int[] answer = solution(data);
System.out.println(answer[0]);
//배열번호가 아니므로 +1
System.out.println(answer[1]+1);
}
public int[] solution(int[] arr){
//target[0] = Max , target[1] = Index
int[] target = new int[2];
target[0] = -1;
target[1] = 0;
//반복문을 통해 일일히 찾음
for(int i = 0 ; i < arr.length ; i++){
if ( target[0] < arr[i]){
target[0] =arr[i];
target[1] = i ;
}
}
//target이란 배열을 이용해 두 정보를 동시에 전달
return target;
}
}
결과
'공부 > 코딩 테스트 준비' 카테고리의 다른 글
[백준] 2675 - 문자열 반복 JAVA (0) | 2021.08.16 |
---|---|
[백준] 2577 - 숫자의 개수 (0) | 2021.08.14 |
[백준] 2439 - 별 찍기 2 JAVA (0) | 2021.08.12 |
[백준] 1546 - 평균 JAVA (0) | 2021.08.11 |
[백준] 2231 - 분해합 JAVA (0) | 2021.08.07 |
- Total
- Today
- Yesterday
- Database
- 파이썬
- 자바
- DFS
- DP
- 아기상어미워
- db
- 그래프 탐색
- looker core
- 플루이드 와샬
- 하루 회고
- 브루트포스
- value annotation
- 프로그래머스 문제정복
- 실패일기
- looker instance 접속
- 9019
- 프로그래머스
- 유클리드-호제법
- 카카오
- BFS
- JNDI연동
- 재귀
- java
- 백준
- 코딩테스트
- Python
- 아기상어나쁜상어
- Spring
- dml
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |