์์ ์ํธ - Java [์ฝ๋ฉํ ์คํธ ์ฐ์ต]
โค๏ธ Problem
- ๋ฌธ์
์ด๋ค ๋ฌธ์ฅ์ ๊ฐ ์ํ๋ฒณ์ ์ผ์ ํ ๊ฑฐ๋ฆฌ๋งํผ ๋ฐ์ด์ ๋ค๋ฅธ ์ํ๋ฒณ์ผ๋ก ๋ฐ๊พธ๋ ์ํธํ ๋ฐฉ์์ ์์ ์ํธ๋ผ๊ณ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด "AB"๋ 1๋งํผ ๋ฐ๋ฉด "BC"๊ฐ ๋๊ณ , 3๋งํผ ๋ฐ๋ฉด "DE"๊ฐ ๋ฉ๋๋ค. "z"๋ 1๋งํผ ๋ฐ๋ฉด "a"๊ฐ ๋ฉ๋๋ค. ๋ฌธ์์ด s์ ๊ฑฐ๋ฆฌ n์ ์ ๋ ฅ๋ฐ์ s๋ฅผ n๋งํผ ๋ฏผ ์ํธ๋ฌธ์ ๋ง๋๋ ํจ์, solution์ ์์ฑํด ๋ณด์ธ์.
- ์ ํ ์ฌํญ
- ๊ณต๋ฐฑ์ ์๋ฌด๋ฆฌ ๋ฐ์ด๋ ๊ณต๋ฐฑ์ ๋๋ค.
- s๋ ์ํ๋ฒณ ์๋ฌธ์, ๋๋ฌธ์, ๊ณต๋ฐฑ์ผ๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- s์ ๊ธธ์ด๋ 8000์ดํ์ ๋๋ค.
- n์ 1 ์ด์, 25์ดํ์ธ ์์ฐ์์ ๋๋ค.
- ์ ์ถ๋ ฅ ์ & ์ค๋ช
no | s | n | result |
1 | "AB" | 1 | "BC" |
2 | "z" | 1 | "a" |
3 | "a B z" | 4 | "e F d" |
๐ Solution
ํ์ด 1
class Solution {
public String solution(String s, int n) {
StringBuilder sb = new StringBuilder();
for(int i=0; i<s.length(); i++) {
char tmp = s.charAt(i);
if(tmp==' ') {
sb.append(tmp);
} else {
int check = tmp+n;
if(tmp >= 65 && tmp <= 90) {
if(check > 90) {
tmp = (char) (check-26);
} else {
tmp = (char) check;
}
} else {
if(check > 122) {
tmp = (char) (check-26);
} else {
tmp = (char) check;
}
}
sb.append(tmp);
}
}
return sb.toString();
}
}
์ฒ๋ฆฌ์๋ VERY GOOD
๐ Comment
์ด ๋ฌธ์ ๋ ์์คํค์ฝ๋๋ฅผ ์ฌ์ฉํด์ ํ์๋ค.
๋๋ฌธ์ A-Z๋ ์์คํค์ฝ๋๋ก 65 ~ 90, ์๋ฌธ์ a-z๋ ์์คํค์ฝ๋๋ก 97 ~ 122๋ฒ์ด๋ค. ์ฃผ์ํ ์ ์ A-Z์ a-z ์ฌ์ด์ ํน์๋ฌธ์์ ๋ํ ์์คํค์ฝ๋๊ฐ ์์ด ์ซ์๊ฐ ์ฐ์์ ์ด์ง ์๋ค๋ ์ ์ด๋ค.
๋จผ์ ๋ณํํ String์ ๋ด์ StringBuilder๋ฅผ ์ ์ธํ๋ค. StringBuilder๋ฅผ ์ฌ์ฉํ ์ด์ ๋ s.charAt(i)์ ์ฌ์ฉํ์ฌ ๋ง๋ char๋ฅผ ๋ค์ String์ผ๋ก ๋ณํํ๋ ๊ฒ๋ณด๋ค ํจ์จ์ ์ด๋ผ ์๊ฐํ๊ธฐ ๋๋ฌธ์ด๋ค.
๊ทธ ๋ค์ for ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํ์ฌ String s๋ฅผ charAt(i)์ ์ฌ์ฉํด์ char tmp์ ํ๋์ฉ ๋ฃ๋๋ค. if ๊ฐ์ ๋ฌธ์ ์ฌ์ฉํด์ tmp๊ฐ ๊ณต๋ฐฑ์ธ ๊ฒฝ์ฐ์๋ ๊ทธ๋๋ก StringBuilder์ ๋ฃ๋๋ก ๊ตฌํํ๋ค. ๊ทธ๋ ์ง ๋ชปํ ๊ฒฝ์ฐ์๋ tmp(charAt(i))๊ฐ 65๋ถํฐ 90์ ์ํ๋์ง (==๋๋ฌธ์)์ ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ (==์๋ฌธ์)๋ก ๋๋์๋ค. ์ด๋ ๊ฒ ๋๋ ์ด์ ๋ ์กฐ๊ฑด์ด ๊ฐ๊ฐ Z์ z๋ฅผ ๋์ด๊ฐ๋ ๊ฒฝ์ฐ์ ๋ค์ A์ a๋ก ์ํํ๋๋ก ๊ตฌํํ๊ธฐ ์ํจ์ด๋ค.
์ด ๋ ํ์ if์ ์ ๋ค์ด๊ฐ๊ธฐ ์ ์ int check = tmp+n;์ ์ ์ธํ๋ค. ๊ทธ ์ด์ ๋ tmp์์ n์ ๋ํ ๊ฐ์ด ๊ฐ๊ฐ 90์ ์ด๊ณผํ๊ฑฐ๋(๋๋ฌธ์) 122๋ฅผ ์ด๊ณผํ๋ ๊ฒฝ์ฐ(์๋ฌธ์)์ธ ๊ฒฝ์ฐ ์ํ๋ฒณ ๊ฐ์ 26๊ฐ๋ฅผ ๋นผ์ผ A-Z์ a-z ์์์ ์ํํ๋๋ก ๊ตฌํํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
๊ฐ๊ฐ 90 ๋๋ 122์ด ์ด๊ณผํ์ง ์์ผ๋ฉด (char) check;๋ก, ์ด๊ณผํ๋ค๋ฉด (char) (check-26);์ ๊ฐ์ tmp์ ๋ฃ๋๋ก ํ์๊ณ , ๋ง์ง๋ง์๋ tmp๋ฅผ StringBuilder์ ์ถ๊ฐํ๋๋ก ๊ตฌํํ์๋ค. int check ์์ (char) ํ๋ณํ์ ๋ถ์ด๊ฒ ๋๋ฉด ์์คํค์ฝ๋์ ๋ฐ๋ผ char๋ก ๋ณํ์ด ๋๋ค.
์ด๋ฒ ์ฝ๋์๋ ๋ณ์๋ฅผ ๋ง์ด ์ ์ธํ๋๋ฐ, ๊ทธ ์ด์ ๋ charAt(i)๊ฐ ๋๋ฌธ์์ธ์ง ์๋ฌธ์์ธ์ง๋ง ๋ค๋ฅด๊ณ ์ฒ๋ฆฌ๋๋ ๋ฐฉ์์ด ๋์ผํ๊ธฐ ๋๋ฌธ์ด๋ค.
์์ด ๋/์๋ฌธ์์ ์์คํค ์ฝ๋๋ ๋ค์ ํ์ ๊ฐ๋ค.
๋ชจ์ | Ascii | ๋ชจ์ | Ascii |
A | 65 | a | 97 |
B | 66 | b | 98 |
C | 67 | c | 99 |
D | 68 | d | 100 |
E | 69 | e | 101 |
F | 70 | f | 102 |
G | 71 | g | 103 |
H | 72 | h | 104 |
I | 73 | i | 105 |
J | 74 | j | 106 |
K | 75 | k | 107 |
L | 76 | l | 108 |
M | 77 | m | 109 |
N | 78 | n | 110 |
O | 79 | o | 111 |
P | 80 | p | 112 |
Q | 81 | q | 113 |
R | 82 | r | 114 |
S | 83 | s | 115 |
T | 84 | t | 116 |
U | 85 | u | 117 |
V | 86 | v | 118 |
W | 87 | w | 119 |
X | 88 | x | 120 |
Y | 89 | y | 121 |
Z | 90 | z | 122 |