Programmers lv-1

์‹œ์ € ์•”ํ˜ธ - Java [์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต]

๊ทคํ”ผํ‚ค 2022. 12. 8. 09:03

 

โค๏ธ 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

 

 

 

9245์œ„๐Ÿ˜Ž