๊ธฐ๋ก๋ฐฉ

BOJ_1427 : ์†ŒํŠธ์ธ์‚ฌ์ด๋“œ ๋ณธ๋ฌธ

CodingTest/Java

BOJ_1427 : ์†ŒํŠธ์ธ์‚ฌ์ด๋“œ

Soom_1n 2022. 9. 30. 23:52

 

๐Ÿ‘‰ ๋ฌธ์ œ๋งํฌ

 

1427๋ฒˆ: ์†ŒํŠธ์ธ์‚ฌ์ด๋“œ

์ฒซ์งธ ์ค„์— ์ •๋ ฌํ•˜๋ ค๊ณ  ํ•˜๋Š” ์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. N์€ 1,000,000,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค.

www.acmicpc.net



๐Ÿ”ธ ๋ฌธ์ œ ๋ถ„์„ ๐Ÿ”ธ

  • N์ด 1~10์–ต์œผ๋กœ ์ฃผ์–ด์ง€๊ณ , ๊ฐ ์ž๋ฆฌ์ˆ˜๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌํ•ด ์ถœ๋ ฅํ•œ๋‹ค.
  • 10๊ฐœ์˜ ์ˆ˜๋ฅผ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌํ•˜๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ์ œํ•œ์‹œ๊ฐ„ 2์ดˆ(์•ฝ 2์–ตํšŒ ๊ณ„์‚ฐ)๊นŒ์ง€๋Š” ์—ฌ์œ ๋กญ๋‹ค.

๐Ÿ”ธ ์ฝ”๋“œ ๐Ÿ”ธ

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Collections;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str[] = br.readLine().split("");
        Arrays.sort(str, Collections.reverseOrder());
        for (String s : str){
            System.out.print(s);
        }
    }
}

๐Ÿ”ธ ์ฝ”๋“œ ํ•ด์„ ๐Ÿ”ธ

  • ํ•œ ์ค„ ์ž…๋ ฅ๋ฐ›๊ณ  split์œผ๋กœ ๊ฐ ์ž๋ฆฌ์ˆ˜๋ฅผ String ๋ฐฐ์—ด์— ๋‚˜๋ˆ  ๋‹ด๋Š”๋‹ค.
  • ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ ํ›„ ๋ถ™์—ฌ์„œ ์ถœ๋ ฅํ•œ๋‹ค.

๐Ÿ”ธ ๋‹ค๋ฅธ ํ’€์ด ๐Ÿ”ธ

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        int[] A = new int[str.length()];
        for (int i = 0; i < str.length(); i++){
            A[i] = Integer.parseInt(str.substring(i, i+1));
        }
        for (int i = 0; i < str.length()-1; i++){
            int max = i;
            for (int j = i+1; j < str.length(); j++){ // ์ตœ๋Œ€๊ฐ’ ์ฐพ๊ธฐ
                if (A[j] > A[max])
                    max = j;
            }
            if (A[i] < A[max]){     // ์ตœ๋Œ€๊ฐ’๊ณผ ๊ตํ™˜
                int temp = A[i];
                A[i] = A[max];
                A[max] = temp;
            }
        }
        for (int i = 0; i < str.length(); i++) {
            System.out.print(A[i]);
        }
    }
}
  • ๊ต์žฌ์˜ ์„ ํƒ์ •๋ ฌ์„ ์—ฐ์Šตํ•˜๊ธฐ ์œ„ํ•œ ํ’€์ด
  • ์„ ํƒ ์ •๋ ฌ ๊ณผ์ •
    1. ๋‚จ์€ ์ •๋ ฌ ๋ถ€๋ถ„์—์„œ ์ตœ์†Ÿ๊ฐ’ ๋˜๋Š” ์ตœ๋Œ“๊ฐ’์„ ์ฐพ๋Š”๋‹ค.
    2. ๋‚จ์€ ์ •๋ ฌ ๋ถ€๋ถ„์—์„œ ๊ฐ€์žฅ ์•ž์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ์™€ ์„ ํƒ๋œ ๋ฐ์ดํ„ฐ๋ฅผ swap ํ•œ๋‹ค.
    3. ๊ฐ€์žฅ ์•ž์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ์˜ ์œ„์น˜๋ฅผ ๋ณ€๊ฒฝํ•ด(index++) ๋‚จ์€ ์ •๋ ฌ ๋ถ€๋ถ„์˜ ๋ฒ”์œ„๋ฅผ ์ถ•์†Œํ•œ๋‹ค.
    4. ์ „์ฒด ๋ฐ์ดํ„ฐ ํฌ๊ธฐ๋งŒํผ index๊ฐ€ ์ปค์งˆ ๋•Œ๊นŒ์ง€, ์ฆ‰ ๋‚จ์€ ์ •๋ ฌ ๋ถ€๋ถ„์ด ์—†์„ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค.
  • ์ž์—ฐ์ˆ˜๋ฅผ ๋ฐ›์•„ ์ž๋ฆฟ์ˆ˜๋ณ„๋กœ ์ •๋ ฌํ•˜๋Š” ๋ฌธ์ œ์ด๋ฏ€๋กœ ๋จผ์ € ์ˆซ์ž๋ฅผ ๊ฐ ์ž๋ฆฟ์ˆ˜ ๋ณ„๋กœ ๋‚˜๋ˆ„๋Š” ์ž‘์—… ํ•„์š”
    • ๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ์œผ๋กœ ๋ถ„๋ฆฌํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, String๊ฐ’์œผ๋กœ ๋ฐ›์€ ํ›„ substring()ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด ์ž๋ฆฟ์ˆ˜ ๋‹จ์œ„๋กœ ๋ถ„๋ฆฌํ•˜๊ณ , ์ด๋ฅผ ๋‹ค์‹œ intํ˜•์œผ๋กœ ๋ณ€๊ฒฝํ•ด ๋ฐฐ์—ด์— ์ €์žฅ
  • ๊ทธ ๋‹ค์Œ ๋‹จ์ˆœํ•˜๊ฒŒ ๋ฐฐ์—ด์„ ์ •๋ ฌ
    • n์ด ํฌ์ง€ ์•Š์œผ๋ฏ€๋กœ ๋‚ด์žฅ ํ•จ์ˆ˜๋ฅผ ์“ฐ์ง€์•Š๊ณ  ์„ ํƒ ์ •๋ ฌ ์‚ฌ์šฉํ•ด์„œ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ

๐Ÿ”ธ end ๐Ÿ”ธ

  • ๋งŒ๋“ค์–ด์ง„ ๋ฉ”์†Œ๋“œ๋“ค๋กœ ํŽธํ•˜๊ฒŒ ํ’€์ดํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.
  • Arrays.sort์˜ ๋‚ด๋ฆผ์ฐจ์ˆœ์€ ํ—ท๊น”๋ ค์„œ Collections.reverseOrder()์ธ ๊ฑธ ๋‹ค์‹œ ํ™•์ธํ–ˆ๋‹ค.
  • ์„ ํƒ์ •๋ ฌ ์—ฐ์Šต์„ ์œ„ํ•ด ํ’€์ด๋ฅผ ์ถ”๊ฐ€ํ–ˆ๋‹ค.(22.11.08)

728x90

'CodingTest > Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

BOJ_1417 : ๊ตญํšŒ์˜์› ์„ ๊ฑฐ  (0) 2022.10.02
BOJ_10815 : ์ˆซ์ž ์นด๋“œ  (0) 2022.10.01
BOJ_2581 : ์†Œ์ˆ˜  (0) 2022.09.29
BOJ_4673 : ์…€ํ”„ ๋„˜๋ฒ„  (0) 2022.09.28
BOJ_1253 : ์ข‹๋‹ค  (0) 2022.09.24