반응형
풀이
- 해당 알고리즘에 대해 어떻게 접근해야할지에 대한 고민을 오래했지만
- 잘 떠오르지 않아서 다른 분들의 풀이를 확인 후 조금씩 이해할 수 있었다.
- 우선 가장 문제였던 부분이 아래와 같다.
- 나의 키보다 큰 사람이 왼쪽에 입력 받은 수 만큼 있어야 하는 것.
- 입력 받은 수가 같을 경우.
- 그래서 다른 분들의 풀이를 참고하여 이해할 수 있었지만
- 해당 유형과 비슷한 문제들을 좀 더 풀어봐야 확실한 이해를 할 수 있을것 같다.
- 우선 위 문제였던 부분에 대한 해결법으로는
- 조건식을 통해 cnt와 입력 받은 값이 같은지 그리고 result[j]의 값이 아직 채워지지 않았는지 확인.
import java.io.*;
import java.util.*;
public class 한줄로서기 {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
StringTokenizer st = new StringTokenizer(br.readLine());
ArrayList<Integer> li = new ArrayList<>();
ArrayList<Integer> result = new ArrayList<>();
for (int i = 0; i < n; i++) {
li.add(Integer.parseInt(st.nextToken()));
result.add(0);
}
for (int i = 0; i < n; i++) {
int cnt = 0;
for (int j = 0; j < n; j++) {
if (cnt == li.get(i) && result.get(j) == 0) {
result.set(j,i+1);
break;
} else if (result.get(j) == 0) cnt ++;
}
}
for (int i = 0; i < n; i++) {
if (i != n-1) System.out.print(result.get(i) + " ");
else System.out.print(result.get(i));
}
}
}
'알고리즘' 카테고리의 다른 글
[백준, 자바, 1236번] 성 지키기 (2) | 2023.12.27 |
---|---|
[백준, 파이썬, 1236번] 성 지키기 (0) | 2023.12.27 |
[백준, 파이썬, 1138번] 한 줄로 서기 (0) | 2023.12.26 |
[백준, 자바, 1063번] 킹 (0) | 2023.12.22 |
[백준, 파이썬, 1063번] 킹 (0) | 2023.12.22 |