728x90
반응형
1. 큰 수 출력하기
설명
N개의 정수를 입력받아, 자신의 바로 앞 수보다 큰 수만 출력하는 프로그램을 작성하세요.
(첫 번째 수는 무조건 출력한다)
입력
첫 줄에 자연수 N(1<=N<=100)이 주어지고, 그 다음 줄에 N개의 정수가 입력된다.
출력
자신의 바로 앞 수보다 큰 수만 한 줄로 출력한다
예시 입력 1
6
7 3 9 5 6 12
예시 출력 1
7 9 6 12
import java.util.Scanner;
public class Main {
static Scanner kb=new Scanner(System.in);
public void solution(int[] arr){
for(int i=0;i<arr.length;i++){
arr[i]=kb.nextInt();
if(i==0 ||i!=0&& arr[i]>arr[i-1]){
System.out.print(arr[i]+" ");
}else if(i==arr.length-1&&arr[i]>arr[i-1]){
System.out.print(arr[i]);
}
}
}
public static void main(String[] args){
Main T =new Main();
int n = kb.nextInt();
int [] arr= new int[n];
T.solution(arr);
}
}
import java.util.Scanner;
public class Main {
public void solution(int[] arr){
System.out.print(arr[0]+" ");
for(int i=1;i<arr.length;i++)
if(arr[i]>arr[i-1])
System.out.print(arr[i]+" ");
}
public static void main(String[] args){
Main T=new Main();
Scanner kb=new Scanner(System.in);
int n = kb.nextInt();
int [] arr = new int[n];
for(int i=0;i<n;i++) arr[i]=kb.nextInt();
//System.out.println();
T.solution(arr);
}
}
import java.util.*;
public class Main {
public static void main(String[] args){
Scanner kb=new Scanner(System.in);
int n = kb.nextInt();
int[] arr = new int[n];
for(int i=0;i<n;i++){
arr[i]=kb.nextInt();
}
for(int x: solution(arr)) System.out.print(x+" ");
}
static List<Integer> solution(int[] arr){
ArrayList<Integer> list = new ArrayList<>();
list.add(arr[0]);
int tmp=arr[0];
for(int i=1;i<arr.length;i++){
if(tmp<arr[i])
list.add(arr[i]);
tmp=arr[i];
}
return list;
}
}
1. int tmp=0으로 설정해, 0보다 크면 리스트에 삽입
2. 배열을 처음부터 비교하는데, 삽입하고, 해당 배열 값을 tmp에 저장
import java.util.*;
public class Main {
public static void main(String[] args){
Scanner in=new Scanner(System.in);
int n = in.nextInt();
int[] arr = new int[n];
for(int i=0;i<n;i++){
arr[i]=in.nextInt();
}
solution(n,arr);
}
static void solution(int n, int[]arr){
ArrayList<Integer> list = new ArrayList<>();
int tmp=0;
for(int i=0;i<n;i++){
if(tmp<arr[i])
list.add(arr[i]);
tmp=arr[i];
}
for(int x: list) System.out.print(x+" ");
}
}
+) 세련된 풀이
import java.util.*;
class Main {
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;
}
public static void main(String[] args) {
Main T = new Main();
Scanner kb = new Scanner(System.in);
int n = kb.nextInt();
int[] arr = new int[n];
for (int i = 0; i < n; i++) {
arr[i] = kb.nextInt();
}
for (int x : T.solution(n, arr)) {
System.out.print(x + " ");
}
}
}
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner in=new Scanner(System.in);
int n= in.nextInt();
int[] arr = new int[n];
int tmp=Integer.MIN_VALUE;
for(int i=0;i<n;i++){
arr[i]=in.nextInt();
if(arr[i]>tmp) System.out.print(arr[i]+" ");
tmp=arr[i];
}
}
}
728x90
반응형
'Java > Java 알고리즘 인프런' 카테고리의 다른 글
[Ch.02 - Array] 03. 가위 바위 보 (0) | 2022.05.17 |
---|---|
[Ch.02 - Array] 02. 보이는 학생 (0) | 2022.05.17 |
[Ch.01 - String] 12. 암호 (+Integer.parseInt( ,2)) (0) | 2022.05.16 |
[Ch.01 - String] 11. 문자열 압축 (+ 공백 활용) (0) | 2022.05.16 |
[Ch.01 - String] 10. 가장 짧은 문자거리 # (+ Math.min, charAt) (0) | 2022.05.16 |