์•Œ๊ณ ๋ฆฌ์ฆ˜

10์›” 17์ผ 2๋ฌธ์ œ - Java

1. ๋ฌธ์ž์—ด ์••์ถ•

์•ŒํŒŒ๋ฒณ ๋Œ€๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด์„ ์ž…๋ ฅ๋ฐ›์•„ ๊ฐ™์€ ๋ฌธ์ž๊ฐ€ ์—ฐ์†์œผ๋กœ ๋ฐ˜๋ณต๋˜๋Š” ๊ฒฝ์šฐ ๋ฐ˜๋ณต๋˜๋Š”

๋ฌธ์ž ๋ฐ”๋กœ ์˜ค๋ฅธ์ชฝ์— ๋ฐ˜๋ณต ํšŸ์ˆ˜๋ฅผ ํ‘œ๊ธฐํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฌธ์ž์—ด์„ ์••์ถ•ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

๋‹จ ๋ฐ˜๋ณตํšŸ์ˆ˜๊ฐ€ 1์ธ ๊ฒฝ์šฐ ์ƒ๋žตํ•ฉ๋‹ˆ๋‹ค.

 


์šฐ์„  index ์˜ค๋ฅ˜๋ฅผ ์žก๊ธฐ ์œ„ํ•ด ์–ด๋–ค ๋ฐฉ๋ฒ•์„ ์จ์•ผ ํ•˜๋Š”์ง€ ์ž˜ ๋ชฐ๋ผ ๊ฐ•์˜๋ฅผ ์ฐธ๊ณ  ํ–ˆ๋‹ค.

๊ณต๋ฐฑ ๋ฌธ์ž๋ฅผ ์ถ”๊ฐ€ํ•ด์„œ ์•ž๋’ค ๋ฌธ์ž ๋ฅผ ๋น„๊ตํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ํ–ˆ๋‹ค.

import java.util.Scanner;

public class Test1_11 {

  public String solution(String sentence) {
    String result = "";
    int cnt = 1;
    // ๋งจ ๋ ๊ธ€์ž๋ฅผ ์œ„ํ•ด ๊ณต๋ฐฑ ์ถ”๊ฐ€ > indexOfBind ๋ฐฉ์ง€
    sentence = sentence + " ";

    for (int i = 0; i < sentence.length() - 1; i++) {

	// ์•ž ๋ฌธ์ž์™€ ๋ฐ”๋กœ ๋’ค ๋ฌธ์ž๊ฐ€ ๊ฐ™์ง€ ์•Š์„ ๊ฒฝ์šฐ
      if (sentence.charAt(i) != sentence.charAt(i + 1)) {
      // cnt ๊ฐ€ 2์ด์ƒ์ผ ๋•Œ ์ค‘๋ณต๋ฌธ์ž๊ฐ€ ์žˆ๋‹ค๋Š” ๋œป -> ํ•ด๋‹น ๋ฌธ์ž์™€ ๋ฐ˜๋ณต ํšŸ์ˆ˜ ์ถ”๊ฐ€
        if (cnt > 1) {
          result += String.valueOf(sentence.charAt(i)) + cnt;
        }
        // cnt๊ฐ€ 1์ธ ๊ฒฝ์šฐ๋Š” ์ค‘๋ณต๋ฌธ์ž๊ฐ€ ์—†์œผ๋ฏ€๋กœ ํ•ด๋‹น ๋ฌธ์ž๋งŒ ์ถ”๊ฐ€
          result +=sentence.charAt(i);
        // ๋‹ค์Œ ์ค‘๋ณต๋ฌธ์ž์˜ ์นด์šดํŠธ๋ฅผ ์œ„ํ•ด ์ดˆ๊ธฐํ™”
        cnt = 1;
      } else {
      // ์ค‘๋ณต ๋ฌธ์ž๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ ์ด๋ฏ€๋กœ cnt ์ถ”๊ฐ€
        cnt++;
      }
    }

    return result;
  }

  public static void main(String[] args) {
    Test1_11 main = new Test1_11();
    Scanner sc = new Scanner(System.in);
    String sentence = sc.nextLine();
    System.out.println(main.solution(sentence));
  }
}

 

2. ์•”ํ˜ธ

ํ˜„์ˆ˜๋Š” ์˜ํฌ์—๊ฒŒ ์•ŒํŒŒ๋ฒณ ๋Œ€๋ฌธ์ž๋กœ ๊ตฌ์„ฑ๋œ ๋น„๋ฐ€ํŽธ์ง€๋ฅผ ๋งค์ผ ์ปดํ“จํ„ฐ๋ฅผ ์ด์šฉํ•ด ๋ณด๋ƒ…๋‹ˆ๋‹ค.

๋น„๋ฐ€ํŽธ์ง€๋Š” ํ˜„์ˆ˜์™€ ์˜ํฌ๊ฐ€ ์„œ๋กœ ์•ฝ์†ํ•œ ์•”ํ˜ธ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋น„๋ฐ€ํŽธ์ง€๋Š” ์•ŒํŒŒ๋ฒณ ํ•œ ๋ฌธ์ž๋งˆ๋‹ค # ๋˜๋Š” *์ด ์ผ๊ณฑ ๊ฐœ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋งŒ์•ฝ ํ˜„์ˆ˜๊ฐ€ “#*****#”์œผ๋กœ ๊ตฌ์„ฑ๋œ ๋ฌธ์ž๋ฅผ ๋ณด๋ƒˆ๋‹ค๋ฉด ์˜ํฌ๋Š” ํ˜„์ˆ˜์™€ ์•ฝ์†ํ•œ ๊ทœ์น™๋Œ€๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•ด์„ํ•ฉ๋‹ˆ๋‹ค.

1. “#*****#”๋ฅผ ์ผ๊ณฑ์ž๋ฆฌ์˜ ์ด์ง„์ˆ˜๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. #์€ ์ด์ง„์ˆ˜์˜ 1๋กœ, *์ด์ง„์ˆ˜์˜ 0์œผ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ๋Š” “1000001”๋กœ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค.

2. ๋ฐ”๋€ 2์ง„์ˆ˜๋ฅผ 10์ง„์ˆ˜ํ™” ํ•ฉ๋‹ˆ๋‹ค. “1000001”์„ 10์ง„์ˆ˜ํ™” ํ•˜๋ฉด 65๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

3. ์•„์Šคํ‚ค ๋ฒˆํ˜ธ๊ฐ€ 65๋ฌธ์ž๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰ ์•„์Šคํฌ๋ฒˆํ˜ธ 65๋Š” ๋Œ€๋ฌธ์ž 'A'์ž…๋‹ˆ๋‹ค.

์ฐธ๊ณ ๋กœ ๋Œ€๋ฌธ์ž๋“ค์˜ ์•„์Šคํ‚ค ๋ฒˆํ˜ธ๋Š” 'A'๋Š” 65๋ฒˆ, ‘B'๋Š” 66๋ฒˆ, ’C'๋Š” 67๋ฒˆ ๋“ฑ ์ฐจ๋ก€๋Œ€๋กœ 1์”ฉ ์ฆ๊ฐ€ํ•˜์—ฌ ‘Z'๋Š” 90๋ฒˆ์ž…๋‹ˆ๋‹ค.

ํ˜„์ˆ˜๊ฐ€ 4๊ฐœ์˜ ๋ฌธ์ž๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‹ ํ˜ธ๋กœ ๋ณด๋ƒˆ๋‹ค๋ฉด

#****###**#####**#####**##**

์ด ์‹ ํ˜ธ๋ฅผ 4๊ฐœ์˜ ๋ฌธ์ž์‹ ํ˜ธ๋กœ ๊ตฌ๋ถ„ํ•˜๋ฉด

#****## --> 'C'

#**#### --> 'O'

#**#### --> 'O'

#**##** --> 'L'

์ตœ์ข…์ ์œผ๋กœ “COOL"๋กœ ํ•ด์„๋ฉ๋‹ˆ๋‹ค.

ํ˜„์ˆ˜๊ฐ€ ๋ณด๋‚ธ ์‹ ํ˜ธ๋ฅผ ํ•ด์„ํ•ด์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด์„œ ์˜ํฌ๋ฅผ ๋„์™€์ฃผ์„ธ์š”.


1. 2์ง„์ˆ˜์˜ ํ•œ ๊ธ€์ž๋Š” 7๊ฐœ ์ด๋ฏ€๋กœ 0~7 ์„ ์ž˜๋ผ replace ํ•ด์ฃผ์—ˆ๋‹ค.

2. Integer.parseInt(tmp,2) -> 2์ง„์ˆ˜ ์ด๋ฏ€๋กœ 10์ง„์ˆ˜๋กœ ๋ฐ”๊ฟ”๋ผ

3. char ๋กœ ํ˜•๋ณ€ํ™˜ ํ•˜์—ฌ result์— ์ถ”๊ฐ€

4. 7๋ถ€ํ„ฐ ๋๊นŒ์ง€ ์ž๋ฅธ ๋ฌธ์ž์—ด์„ ์ดˆ๊ธฐํ™” ํ•˜์—ฌ ๋‹ค์Œ ๋‹จ์–ด ์ฐจ๋ก€๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค.

import java.util.Scanner;

public class Main {
  public String solution(int cnt, String sentence) {
    String result = "";
    for (int i = 0; i <cnt; i++) {
      String tmp = sentence.substring(0,7).replace("#","1").replace("*","0");
      int toParse = Integer.parseInt(tmp,2);
      result +=(char)toParse;
      sentence = sentence.substring(7);

    }

    return result;
  }

  public static void main(String[] args) {
    Main main = new Main();
    Scanner sc = new Scanner(System.in);
    int cnt = sc.nextInt();
    String sentence = sc.next();
    System.out.println(main.solution(cnt, sentence));
  }
}
๋ฐ˜์‘ํ˜•