728x90
난이도 : 실버2
풀이일 07252
https://www.acmicpc.net/problem/1138
링크로 이동하기 귀찮은 분들을 위한 문제 캡쳐
풀이 코드
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
int N = scan.nextInt();
int[] array = new int[N];
for (int i = 0; i < N; i++) {
int order = scan.nextInt();
int temp = 0;
for (int j = 0; j < N; j++) {
// 왼쪽에 올 큰 수 만큼 건너 뛴 후, 빈 자리에 숫자 추가
if (order == temp && array[j] == 0) {
array[j] = i+1;
break;
}
// 만약 아직 채워지지 않은 자리는 더 큰 수 자리
if (array[j] == 0) {
temp += 1;
}
}
}
for (int k = 0; k < N; k++) {
System.out.print(array[k]+" ");
}
}
}
- N 크기의 배열 생성 후, 배열 채우는 방식으로 풀이
- 왼 쪽엔 현재 i 보다 큰 수가 위치하므로, 0의 수를 더 큰 앞 수의 개수만큼 센 후 빈자리에 i+1 기록
느낀점
매일 비슷한 문제만 푸니까 잘 늘지 않는 것 같다.
파이썬으로 풀었던 문제를 자바로 다시 풀어보는 시도를 주말에 해봐야겠다.
'알고리즘 > 🥈 실버' 카테고리의 다른 글
백준 26169 세 번 이내에 사과를 먹자 파이썬 풀이 (0) | 2023.11.22 |
---|---|
백준 11659 구간 합 구하기 4 자바 풀이 (0) | 2023.08.20 |
백준 3273 두 수의 합 자바 풀이 (0) | 2023.07.24 |
백준 1049 기타줄 자바 풀이 (0) | 2023.07.20 |
백준 11866 요세푸스 문제0 자바 풀이 (0) | 2023.07.09 |