

1. 문제 풀이 아이디어
- 입력이 양수면 내림차순으로, 음수면 오름차순으로 나열하여 문제를 해결한다.
2. 나의 정답 코드
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
StringBuilder stringBuilder = new StringBuilder();
int n = Integer.parseInt(bufferedReader.readLine());
StringTokenizer stringTokenizer = new StringTokenizer(bufferedReader.readLine());
int s = 1;
int e = n;
for (int i = 0; i < n; i++) {
int a = Integer.parseInt(stringTokenizer.nextToken());
if (i == n - 1 && a < 0) {
stringBuilder = new StringBuilder("-1");
break;
}
if (a > 0) {
stringBuilder.append(e--).append(" ");
} else {
stringBuilder.append(s++).append(" ");
}
}
System.out.print(stringBuilder);
bufferedReader.close();
}
}
3. 정리
s
와e
를 각각 1과n
으로 초기화한다.
- 입력을 처리하면서, 양수일 경우
e
값을stringBuilder
에 추가한 후e
를 감소시킨다.
- 음수일 경우
s
값을stringBuilder
에 추가한 후s
를 증가시킨다.
- 마지막 입력이 음수라면 불가능하므로
stringBuilder
를-1
로 초기화한다.
- 모든 입력 처리가 끝난 후,
stringBuilder
를 출력하여 문제를 해결한다.
Share article