반응형
인프런의 "자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비" 강좌를 수강했습니다.
C, C++, Python, Js 등 다른 언어의 강의도 있으니 본인에게 맞는 강의를 선택하시면 됩니다. 😁
자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 - 인프런 | 강의
자바(Java)로 코딩테스트를 준비하시는 분을 위한 강좌입니다. 코딩테스트에서 가장 많이 출제되는 Top 10 Topic을 다루고 있습니다. 주제와 연동하여 기초문제부터 중급문제까지 단계적으로 구성
www.inflearn.com
Q2-01. 큰 수 찾기
정수 N개를 입력받아, 자신의 바로 앞의 수보다 큰 수를 출력하기
첫 줄엔 정수의 개수가, 두번 째 줄에는 개수에 해당하는 정수가 입력된다.
예시 입력 | 예시 출력 |
6 7 3 9 5 6 12 |
7 9 6 12 |
✏️ 내가 쓴 답
solution() 메소드의 반환타입을 ArrayList<Integer> 로 지정한다.
바로 앞의 수가 담길 정수형 변수 tmp 로 선언하고, 정수형 범위 중 가장 작은 수인 Integer.MIN_VALUE 로 초기화 한다.
그래서 반복문을 돌며 해당 숫자와 tmp 의 크기를 비교하고, 비교가 끝나면 tmp에 그 수를 대입한다.
결과는 정답!✅
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public ArrayList<Integer> solution(int[] arr){
ArrayList<Integer> answer = new ArrayList<>();
int tmp = Integer.MIN_VALUE;
for(int num : arr){
if(num > tmp) answer.add(num);
tmp = num;
}
return answer;
}
public static void main(String[] args) {
Main main = new Main();
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
int[] arr = new int[num];
for(int i=0; i<num; i++){
arr[i] = sc.nextInt();
}
for(int x : main.solution(arr)){
System.out.print(x + " ");
}
}
}
반응형
👨🏻🏫 풀이코드
선생님은 아래와 같이 풀이했다.
변수 초기화 없이 첫번 째 숫자는 배열 첫번째에 넣고,
반복문에서 배열 i번째와 i-1번째를 비교하는 방식이었다.
public ArrayList<Integer> solution(int n, int[] arr){
ArrayList<Integer> answer = new ArrayList<>();
answer.add(arr[0]);
for(int i=1; i<n; i++){
if(arr[i]>arr[i-1]) answer.add(arr[i]);
}
return answer;
}
🤓 정리
- ArrayList<E> E 는 제너릭 타입은 리스트에 들어갈 값의 타입을 지정해준다. 잘못된 값이 들어오는 것을 방지할 수 있다.
반응형
'Study > 알고리즘' 카테고리의 다른 글
[알고리즘/인프런] Array(1, 2차원 배열) #2-03. 가위바위보 (0) | 2022.05.08 |
---|---|
[알고리즘/인프런] Array(1, 2차원 배열) #2-02. 보이는 학생 (0) | 2022.05.08 |
[알고리즘/인프런] String(문자열) #1-12. 암호 찾기 (0) | 2022.05.02 |
[알고리즘/인프런] String(문자열) #1-11. 문자열 압축 (0) | 2022.05.02 |
[알고리즘/인프런] String(문자열) #1-10. 가장 짧은 문자거리 (0) | 2022.04.27 |