Coding Test

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - 12951 : JadenCase ๋ฌธ์ž์—ด ๋งŒ๋“ค๊ธฐ ํ’€์ด ๋ฐ ์˜ค๋‹ต๋…ธํŠธ (ํ…Œ์ŠคํŠธ 8๋ฒˆ ์‹คํŒจ!!!)

ํ”„๋กœ๊ทธ๋ž˜๋จธ ์˜ค์›” 2023. 9. 11.

https://school.programmers.co.kr/learn/courses/30/lessons/12951

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

 

โœ”๏ธJadenCase ๋ฌธ์ž์—ด ๋งŒ๋“ค๊ธฐ

 

๋ฌธ์ œ ์„ค๋ช…

JadenCase๋ž€ ๋ชจ๋“  ๋‹จ์–ด์˜ ์ฒซ ๋ฌธ์ž๊ฐ€ ๋Œ€๋ฌธ์ž์ด๊ณ , ๊ทธ ์™ธ์˜ ์•ŒํŒŒ๋ฒณ์€ ์†Œ๋ฌธ์ž์ธ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค. ๋‹จ, ์ฒซ ๋ฌธ์ž๊ฐ€ ์•ŒํŒŒ๋ฒณ์ด ์•„๋‹ ๋•Œ์—๋Š” ์ด์–ด์ง€๋Š” ์•ŒํŒŒ๋ฒณ์€ ์†Œ๋ฌธ์ž๋กœ ์“ฐ๋ฉด ๋ฉ๋‹ˆ๋‹ค. (์ฒซ ๋ฒˆ์งธ ์ž…์ถœ๋ ฅ ์˜ˆ ์ฐธ๊ณ )
๋ฌธ์ž์—ด s๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, s๋ฅผ JadenCase๋กœ ๋ฐ”๊พผ ๋ฌธ์ž์—ด์„ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

์ œํ•œ ์กฐ๊ฑด
  • s๋Š” ๊ธธ์ด 1 ์ด์ƒ 200 ์ดํ•˜์ธ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค.
  • s๋Š” ์•ŒํŒŒ๋ฒณ๊ณผ ์ˆซ์ž, ๊ณต๋ฐฑ๋ฌธ์ž(" ")๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์ˆซ์ž๋Š” ๋‹จ์–ด์˜ ์ฒซ ๋ฌธ์ž๋กœ๋งŒ ๋‚˜์˜ต๋‹ˆ๋‹ค.
    • ์ˆซ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ๋‹จ์–ด๋Š” ์—†์Šต๋‹ˆ๋‹ค.
    • ๊ณต๋ฐฑ๋ฌธ์ž๊ฐ€ ์—ฐ์†ํ•ด์„œ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ž…์ถœ๋ ฅ ์˜ˆ
 
s return
"3people unFollowed me" "3people Unfollowed Me"
"for the last week" "For The Last Week"

 

๋ฌธ์ œ๋ฅผ ์ฒ˜์Œ ์ ‘ํ–ˆ์„ ๋•Œ ๊ณต๋ฐฑ์„ ๊ธฐ์ค€์œผ๋กœ ๋‚˜๋ˆ ์„œ ์ฒซ๊ธ€์ž๋Š” ๋Œ€๋ฌธ์ž ๋‚˜๋จธ์ง€ ๊ธ€์ž๋Š” ์†Œ๋ฌธ์ž๋กœ ๋ฐ”๊ฟ”์„œ StringBuilder์— ๋„ฃ์–ด์„œ ์ถœ๋ ฅํ•˜๋ฉด ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.

(์ˆซ์ž๋“  ๊ณต๋ฐฑ์ด๋“  toUpperCase()๋ฅผ ํ•ด๋„ ์ƒ๊ด€ ์—†์œผ๋‹ˆ ์ˆซ์ž์ธ์ง€ ๊ณต๋ฐฑ์ธ์ง€ ์•ŒํŒŒ๋ฒณ์ธ์ง€ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๊ณ  ๋‚˜๋ˆˆ ๋ฌธ์ž์—ด์˜ ์ฒซ ๊ธ€์ž๋Š” ๋ชจ๋‘ ๋Œ€๋ฌธ์ž๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  ์ฒซ๊ธ€์ž๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ๊ธ€์ž๋“ค์€ ์†Œ๋ฌธ์ž๋กœ ๋ณ€๊ฒฝํ•ด์„œ ์ถœ๋ ฅํ•˜๋ คํ–ˆ๋‹ค.)

 

โŒํ‹€๋ฆฐ ํ’€์ด

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public class LS_12951_fail {
    public static void main(String[] args) {
        String s = "  3people     unFollowed   me     ";
        System.out.println(solution(s));
    }
 
    public static String solution(String s) {
        String[] sArr = s.split(" ");
        StringBuilder jadenCase = new StringBuilder();
        for (int i = 0; i < sArr.length - 1; i++) {
            String[] subStirng = sArr[i].split("");
            jadenCase.append(subStirng[0].toUpperCase());
            for (int y = 1; y < subStirng.length; y++) {
                jadenCase.append(subStirng[y].toLowerCase());
            }
            jadenCase.append(" ");
        }
        String[] subStirng = sArr[sArr.length - 1].split("");
        jadenCase.append(subStirng[0].toUpperCase());
        for (int y = 1; y < subStirng.length; y++) {
            jadenCase.append(subStirng[y].toLowerCase());
        }
        return jadenCase.toString();
    }
}
 
cs

 

ํ•˜์ง€๋งŒ ํ…Œ์ŠคํŠธ 8๋ฒˆ์ด ๊ณ„์† ํ‹€๋ ธ๋‹ค๊ณ  ๋‚˜์˜จ๋‹ค.

์ •๋‹ต์˜ ํžŒํŠธ๋Š” ์ € ํ‹€๋ฆฐ ์ฝ”๋“œ์˜ ๋ฌธ์ž์—ด์— ์žˆ๋Š”๋ฐ, split() ์„ ์จ์„œ " " ๊ณต๋ฐฑ ๊ธฐ์ค€์œผ๋กœ ๋ฌธ์ž์—ด์„ ๋‚˜๋ˆ„๋ฉด me ๋‹ค์Œ ๊ณต๋ฐฑ ๋ฌธ์ž์—ด์ด ์‚ฌ๋ผ์ ธ์„œ ์ด๋‹ค.

 

๋ฌธ์ œ์—์„œ

   3people     unFollowed   me     

์ด๋ ‡๊ฒŒ ์ฃผ์–ด์ง„๋‹ค๋ฉด ( ๋ฐ‘์ค„์ด ์žˆ์ง€๋งŒ ๊ธ€์ž๊ฐ€ ์—†๋Š” ๊ฑด ๊ณต๋ฐฑ์ด๋‹ค.)

   3people     Unfollowed   Me     

์ด๋ ‡๊ฒŒ ์ •๋‹ต์ด ์ถœ๋ ฅ๋˜์–ด์•ผ ํ•œ๋‹ค. ์ฆ‰ ์•ž๋’ค ๊ณต๋ฐฑ ๋ฐ ๋‹จ์–ด ์‚ฌ์ด์‚ฌ์ด์— ์žˆ๋Š” ์—ฌ๋Ÿฌ ๊ณต๋ฐฑ๋“ค๋„ ๋‹ค ์ถœ๋ ฅ ๋˜์–ด์•ผํ•œ๋‹ค.

 

ํ•˜์ง€๋งŒ ์œ„ ํ‹€๋ฆฐ ์ฝ”๋“œ๋กœ ์ถœ๋ ฅํ•˜๊ฒŒ ๋˜๋ฉด ์•ž๋ถ€๋ถ„์€ ๊ณต๋ฐฑ๊นŒ์ง€ ์ž˜ ์ถœ๋ ฅ๋˜์ง€๋งŒ, ๋’ค์— me ๋ถ€๋ถ„ ๋’ค ๊ณต๋ฐฑ๋ฌธ์ž์—ด์€ ์ถœ๋ ฅ๋˜์ง€ ์•Š๋Š”๋‹ค.

์‹คํ–‰๊ฒฐ๊ณผ :

   3people     Unfollowed   Me

์ด๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ํ…Œ์ŠคํŠธ 8 ๋ฒˆ์ด ํ‹€๋ฆฐ ๊ฒƒ์ด๋‹ค.

 

๋ฐฉ๋ฒ•๋ก ์ ์œผ๋ก  ๋งž์ง€๋งŒ ํ‹€๋ฆฐ ํ’€์ด์˜€๋‹ค. ์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ๊ทธ๋Ÿผ ๋งจ ๋งˆ์ง€๋ง‰ ๋ฌธ์ž์—ด์˜ ๊ณต๋ฐฑ๋“ค ๊นŒ์ง€ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ์„๊นŒ ์ƒ๊ฐํ•˜๋‹ค๊ฐ€ StringTokenizer ๋ฅผ ์ƒ๊ฐํ–ˆ๋‹ค.

 

 

โญ•๋งž์€ ํ’€์ด(์Šคํฌ์ฃผ์˜)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import java.util.StringTokenizer;
 
public class LS_12951_success {
    public static void main(String[] args) {
        String s = "   3people     unFollowed   me     ";
        System.out.println(solution(s));
    }
 
    public static String solution(String s) {
        StringTokenizer st = new StringTokenizer(s, " "true);
        StringBuilder jadenCase = new StringBuilder();
        while (st.hasMoreTokens()) {
            String[] subStirng = st.nextToken().split("");
            jadenCase.append(subStirng[0].toUpperCase());
            for (int y = 1; y < subStirng.length; y++) {
                jadenCase.append(subStirng[y].toLowerCase());
            }
        }
        return jadenCase.toString();
    }
}
cs

ํ•ต์‹ฌ์€ ์—ฌ๊ธฐ์— ์žˆ๋‹ค.

returnDelims: true

๋ฌธ์ž์—ด์„ ์œ„์ฒ˜๋Ÿผ " " ๊ณต๋ฐฑ๊ธฐ์ค€์œผ๋กœ ๋‚˜๋ˆ„์ง€๋งŒ ๊ตฌ๋ถ„์ž๋ฅผ ๋ถ„๋ฆฌ๋œ ๋ฌธ์ž์—ด ํ† ํฐ์— ํฌํ•จ์‹œํ‚ค๋Š” ๊ฒƒ์ด๋‹ค.

 

ํ‹€๋ฆฐ ํ’€์ด์™€ ๋งž์€ ํ’€์ด์˜ ๊ฐ€์žฅ ํฐ ์ฐจ์ด์ ์€ ๋ฐ”๋กœ ๋ฌธ์ž์—ด์˜ ํŒŒ์‹ฑํ•˜๋Š”๋ฐ์— split()๊ณผ StringTokenizer ๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค๋Š”๋ฐ์— ์žˆ๋‹ค.

 

๐Ÿ’กsplit()๊ณผ StringTokenizer์˜ ์ฐจ์ด์ 

  • ๋จผ์ € split ๋ฉ”์†Œ๋“œ๋Š” Stringํด๋ž˜์Šค์— ์†ํ•ด์žˆ๋Š” ๋ฉ”์†Œ๋“œ์ด๊ณ , StringTokenizer๋Š” java.util์— ํฌํ•จ๋˜์–ด ์žˆ๋Š” ํด๋ž˜์Šค์ด๋‹ค.
  • ๊ตฌ๋ถ„์ž๋ฅผ split๋Š” ์ •๊ทœ ํ‘œํ˜„์‹์œผ๋กœ ๊ตฌ๋ถ„ํ•˜๊ณ , StringTokenizer๋Š” ๋ฌธ์ž๋กœ ๋ฐ›๋Š”๋‹ค.
  • split๋Š” ๊ฒฐ๊ณผ ๊ฐ’์ด ๋ฌธ์ž์—ด ๋ฐฐ์—ด์ด์ง€๋งŒ, stringtokenizer๋Š” ๊ฐ์ฒด์ด๋‹ค.
  • split๋Š” ๋นˆ๋ฌธ์ž์—ด์„ ํ† ํฐ์œผ๋กœ ์ธ์‹ํ•˜๋Š” ๋ฐ˜๋ฉด, StringTokenizer๋Š” ๋นˆ ๋ฌธ์ž์—ด์„ ํ† ํฐ์œผ๋กœ ์ธ์‹ํ•˜์ง€ ์•Š๋Š”๋‹ค.

๋Œ“๊ธ€