[랜덤 마라톤] 돌의 정령 줄세우기(24025)

lhs's avatar
Jan 06, 2025
[랜덤 마라톤] 돌의 정령 줄세우기(24025)
notion image
notion image

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. 정리

  • se를 각각 1과 n으로 초기화한다.
  • 입력을 처리하면서, 양수일 경우 e 값을 stringBuilder에 추가한 후 e를 감소시킨다.
  • 음수일 경우 s 값을 stringBuilder에 추가한 후 s를 증가시킨다.
  • 마지막 입력이 음수라면 불가능하므로 stringBuilder-1로 초기화한다.
  • 모든 입력 처리가 끝난 후, stringBuilder를 출력하여 문제를 해결한다.
Share article

LHS's Study Space