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));
}
}
'์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
10์ 21์ผ 4๋ฌธ์ - Java : Array (0) | 2021.10.25 |
---|---|
10์ 20์ผ 4๋ฌธ์ - Java : Array (0) | 2021.10.20 |
10์ 16์ผ 2๋ฌธ์ - Java (0) | 2021.10.16 |
10์ 14์ผ 2๋ฌธ์ - Java (0) | 2021.10.14 |
10์ 13์ผ 2๋ฌธ์ - Java (0) | 2021.10.13 |