본문 바로가기
알고리즘/백준

백준 10813 공 바꾸기 (JAVA 자바 풀이)

by Renechoi 2023. 7. 2.

백준 10813 공 바꾸기 (JAVA 자바 풀이)

 


 

 

 


 

 

 

10810 공 넣기 문제와 마찬가지로 그대로 구현해주면 된다. 

 

풀이에 있어서 배열 내부를 먼저 초기화해주고 할 것인지, swap 하는 과정에서 초기화할 것인지를 선택할 수 있다. 후자로 하면 마지막에 초기화하지 않은 0에 대해서도 index를 설정해준 값에 대해서 한번 작업을 해주어야 한다. 

 

먼저 초기화해주는 것이 편하다고 판단해 그렇게 풀이했다. 

 

 

 

💡 코드 구현


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
import java.util.stream.IntStream;

public class Main {

   private static final BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));

   public static void main(String[] args) throws IOException {

      StringTokenizer stringTokenizer = new StringTokenizer(bufferedReader.readLine());
      int N = Integer.parseInt(stringTokenizer.nextToken());
      int M = Integer.parseInt(stringTokenizer.nextToken());

      int[] bucket = new int[N + 1];

      IntStream.range(1, bucket.length).forEach(i -> bucket[i] = i);

      while (M-- > 0) {
         stringTokenizer = new StringTokenizer(bufferedReader.readLine());
         int i = Integer.parseInt(stringTokenizer.nextToken());
         int j = Integer.parseInt(stringTokenizer.nextToken());

         swap(i, j, bucket);
      }

      StringBuilder stringBuilder = new StringBuilder();
      IntStream.range(1, bucket.length).forEach(i -> stringBuilder.append(bucket[i]).append(" "));
      System.out.println(stringBuilder);
   }

   private static void swap(int i, int j, int[] bucket) {
      int temp = bucket[i];
      bucket[i] = bucket[j];
      bucket[j] = temp;
   }

}


 

 

 

 

 

 

 

반응형