https://programmers.co.kr/learn/courses/30/lessons/12926

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์‹œ์ € ์•”ํ˜ธ | ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์–ด๋–ค ๋ฌธ์žฅ์˜ ๊ฐ ์•ŒํŒŒ๋ฒณ์„ ์ผ์ •ํ•œ ๊ฑฐ๋ฆฌ๋งŒํผ ๋ฐ€์–ด์„œ ๋‹ค๋ฅธ ์•ŒํŒŒ๋ฒณ์œผ๋กœ ๋ฐ”๊พธ๋Š” ์•”ํ˜ธํ™” ๋ฐฉ์‹์„ ์‹œ์ € ์•”ํ˜ธ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด AB๋Š” 1๋งŒํผ ๋ฐ€๋ฉด BC๊ฐ€ ๋˜๊ณ , 3๋งŒํผ ๋ฐ€๋ฉด DE๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. z๋Š” 1๋งŒํผ ๋ฐ€๋ฉด a๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ๋ฌธ์ž์—ด s์™€ ๊ฑฐ๋ฆฌ n์„ ์ž…๋ ฅ๋ฐ›์•„ s๋ฅผ n๋งŒํผ ๋ฏผ ์•”ํ˜ธ๋ฌธ์„ ๋งŒ๋“œ๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•ด ๋ณด์„ธ์š”. ์ œํ•œ ์กฐ๊ฑด ๊ณต๋ฐฑ์€ ์•„๋ฌด๋ฆฌ ๋ฐ€์–ด๋„ ๊ณต๋ฐฑ์ž…๋‹ˆ๋‹ค. s๋Š” ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž, ๋Œ€๋ฌธ์ž, ๊ณต๋ฐฑ์œผ๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. s์˜ ๊ธธ์ด๋Š” 8000์ดํ•˜์ž…๋‹ˆ๋‹ค.

programmers.co.kr

< ์‹œ์ € ์•”ํ˜ธ>

โ—‹ ์ฒ˜์Œ ํ‘ผ ํ’€์ด

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Solution {
  public String solution(String s, int n) {
      String answer = "";
      for(int i=0 ; i<s.length(); i++){
          if(s.charAt(i)==' ')
                answer+=' ';
          else {
              if(s.charAt(i)>=65 && s.charAt(i)<=90)
                 answer += s.charAt(i)+n>90 ? (char)(s.charAt(i)-26+n) :(char)(s.charAt(i)+n);
              else if(s.charAt(i)>=97 && s.charAt(i)<=122)
                 answer += s.charAt(i)+n>122 ? (char)(s.charAt(i)-26+n) :(char)(s.charAt(i)+n);
          }   
      }
           return answer;
  }
}
cs

โ—‹ ์ƒ๊ฐ ๊ณผ์ •

1.๋ฐ€์–ด๋‚ธ ๋‹ค๋Š”๊ฒƒ -> char๊ฐ’์— n์”ฉ ๋”ํ•ด์•ผํ•œ๋‹ค

2. ์†Œ๋ฌธ์ž ๋Œ€๋ฌธ์ž๋กœ ๋‚˜๋ˆ ์•ผํ•œ๋‹ค.

3. 'Z' ํ˜น์€ 'z' ๊ฐ€ ๋˜์—ˆ์„ ๋•Œ ์กฐ๊ฑด์ด ์žˆ์–ด์•ผํ•œ๋‹ค.

 

โ—‹ ์‹œํ–‰์ฐฉ์˜ค

1.์ฒ˜์Œ์—๋Š” ๋ฒ”์œ„๋„ ๋‚˜๋ˆ„์–ด์ฃผ์ง€ ์•Š์•˜๊ณ  ๊ณต๋ฐฑ๋„ ์ƒ๊ฐ ๋ชปํ–ˆ๊ณ  ์กฐ๊ฑด์‹์„ z๊ฐ€ ๋„˜์—ˆ์„๋•Œ๋งŒ ์–ด๋–ป๊ฒŒ ํ•ด๋ผ๋งŒ ๋„ฃ์–ด์คŒ

 

 

 

โ—‹ ํ•จ๊ป˜ ๋ณด๊ณ ์‹ถ์€ ํ’€์ด

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Caesar {
    String caesar(String s, int n) {
        String result = "";
    n = n % 26;
    for (int i = 0; i < s.length(); i++) {
      char ch = s.charAt(i);
      if (Character.isLowerCase(ch)) {
        ch = (char) ((ch - 'a' + n) % 26 + 'a');
      } else if (Character.isUpperCase(ch)) {
        ch = (char) ((ch - 'A' + n) % 26 + 'A');
      }
      result += ch;
    }
        return result;
    }
 
    public static void main(String[] args) {
        Caesar c = new Caesar();
        System.out.println("s๋Š” 'a B z', n์€ 4์ธ ๊ฒฝ์šฐ: " + c.caesar("a B z"4));
    }
}
cs

6๋ฒˆ์งธ์ค„) n๋Š” 25๊นŒ์ง€๋กœ ์ •ํ•ด์ ธ ์žˆ์ง€๋งŒ ๋งŒ์•ฝ์— 25๊นŒ์ง€ ์ •ํ•ด์ ธ ์žˆ์ง€ ์•Š์•˜๋‹ค๋ฉด %26๋กœ ์—ฐ์‚ฐํ•ด์„œ ๋‚˜๋จธ์ง€๋ฅผ ๋ฐ›๋Š”๋‹ค 

8๋ฒˆ์งธ์ค„) ์ž…๋ ฅ๋ฐ›์€ ch ๊ฐ€ ์†Œ๋ฌธ์ž ๋ฒ”์œ„(122)๋ฅผ ๋„˜์„์ˆ˜ ์žˆ์œผ๋‹ˆ๊น -'a'๋ฅผ ๋นผ๊ณ  +n์„ ํ•œ๋‹ค์Œ %26์„ ๋‚˜๋ˆ„๊ณ  ๋‹ค์‹œ 'a'๋ฅผ

            ๋”ํ•ด์ค€๋‹ค  ์—ฌ๊ธฐ์„œ ํ•ต์‹ฌ์€ ๋‚˜๋จธ์ง€์—ฐ์‚ฐ์ž(%)๋ฅผ ํ†ตํ•ด์„œ ๋ฐ€์–ด์ค„ ์ˆซ์ž ๋งŒํผ๋งŒ ๋‚จ๊ฒจ์ฃผ๋Š”๊ฒƒ

Character.isLowerCase(ch)

+ Recent posts