문제링크
https://softeer.ai/practice/7626
Note
1. 마을 사이 거리를 담은 배열을 만든다.
2. 제일 짧은 거리를 구한다.
3. 제일 짧은 거리의 갯수를 구하고 카운트 한다
- 스캐너를 .nextInt()
과 .nextLine()
을 섞어 쓰니 오류가 나서 .nextLine
만 쓰고 타입을 바꿔줌
Key
- .split();
- Integer.parseInt();
- .nextLine();
- Arrays.sort(arr);
제출 코드
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) {
//마을 사이 거리를 담은 배열 arrDis
//arrDis의 min
//min과 같은 인자 수 구하기 = answer
int min = 0; //가장 짧은 거리
int count = 0;
Scanner sc = new Scanner(System.in);
//n, arrVil[] 입력받기
int n = Integer.parseInt(sc.nextLine());
int[] arrVil = new int[n]; // 마을의 위치
int[] arrDis = new int[n-1]; // 마을 사이 거리 배열
String strVil = sc.nextLine();
String[] arrStrVil = strVil.split(" ");
for(int i=0;i<arrStrVil.length;i++){
arrVil[i] = Integer.parseInt(arrStrVil[i]);
}
//arrDis 담기
for(int i=0;i<arrDis.length;i++){
arrDis[i] = arrVil[i+1] - arrVil[i];
}
//arrDis 중 가장 작은 값 찾기
Arrays.sort(arrDis);
min = arrDis[0];
//min과 같은 arrDis[i] 갯수 구하기
for(int i =0;i<arrDis.length;i++){
if(arrDis[i] == min) count++;
}
sc.close();
System.out.println(count);
}
}
Comment
오랜만에 소프티어 문제 도전 !
lv1도 만만치 않다 :)...
아는 메서드가 몇개 없지만 아는 것들로 풀 수 있어서 다행이다.
ArrayList를 잘 쓰면 배열 길이에서 탈출할 수 있을텐데 너무 낯설고 Array는 너무 익숙해져버렸다.
계속 써버릇 해야지 !
반응형
'코딩테스트 > Java' 카테고리의 다른 글
프로그래머스/자바 lv.1 서울에서 김서방 찾기 - Arrays.asList().indexOf() (0) | 2024.03.22 |
---|---|
프로그래머스/자바 lv.2 - 카펫 (0) | 2024.03.19 |
프로그래머스/자바 lv.1 수박수박수박수박수박수? - String.join("",str), 삼항연산자 (2) | 2024.03.19 |