Post

๐Ÿ’ช๐Ÿป programmers Lv1(24.09.23 - 10๋ฌธ์ œ)

๐Ÿ’ช๐Ÿป programmers Lv1(24.09.23 - 10๋ฌธ์ œ)

์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋ฅผ ๋‹ค์‹œ ์ค€๋น„ํ•˜๋ฉฐ

  • ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋ฅผ ์ค€๋น„ํ•˜๋ฉด์„œ ๋ฌธ์ œ๋ฅผ ํ’€ ๋•Œ ๊นŠ์ด ๊ณ ๋ฏผํ•˜๊ธฐ๋ณด๋‹ค๋Š” ์•”๊ธฐํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ๋งŒ ํ•ด๊ฒฐํ•˜๋ ค ํ–ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค. ๊ทธ๋ž˜์„œ ๋ฌธ์ œ๊ฐ€ ์กฐ๊ธˆ๋งŒ ๊ผฌ์—ฌ๋„ ๋‹ต์„ ์ฐพ์ง€ ๋ชปํ•˜๊ณ , ๋‹ต์•ˆ์„ ๋ณด๋ฉฐ ์ดํ•ดํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•˜๋‹ค.

  • ๋‹ต์•ˆ์„ ๋ณด๊ณ  ํ’€์ด๋ฅผ ๋”ฐ๋ผ๊ฐ€๋‹ค ๋ณด๋‹ˆ ์‚ฌ๊ณ ๋ ฅ์ด ๊ธธ๋Ÿฌ์ง€์ง€ ์•Š์•˜๊ณ , ๋‹ค์Œ์— ๋น„์Šทํ•œ ๋ฌธ์ œ๋ฅผ ๋งŒ๋‚˜๋„ ์ œ๋Œ€๋กœ ํ’€์ง€ ๋ชปํ•˜๋Š” ์ผ์ด ๋ฐ˜๋ณต๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ๋‹ค. ์ด์ œ๋Š” ๋‚œ์ด๋„๊ฐ€ ๋‚ฎ์€ ๋ฌธ์ œ๋ถ€ํ„ฐ ๋‹ค์‹œ ์‹œ์ž‘ํ•ด์„œ, ๋ฌธ์ œ๋ฅผ ํ’€ ๋•Œ ์–ด๋–ค ๊ณ ๋ฏผ์„ ํ–ˆ๊ณ  ์–ด๋–ค ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ ์šฉํ–ˆ๋Š”์ง€ ํ•˜๋‚˜ํ•˜๋‚˜ ์ •๋ฆฌํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ์›๋ž˜ ์•ฝ๊ฐ„ ์‰ฌ์šด ๋ฌธ์ œ๋“ค์„ ๊ณ ๋ฏผํ•˜๋Š” ๋ชจ์Šต๋“ค์ด ์Šค์Šค๋กœ ๋ถ€๋„๋Ÿฌ์›Œ์„œ ๋Œ€์ถฉ ํ’€๊ณ  ๋„˜๊ธฐ๊ณ  ๊ทธ๋žฌ๋Š”๋ฐ ์ด์ œ๋Š” ๋‚ด ์‹ค๋ ฅ์„ ์™„์ „ํžˆ ํŒŒ์•…ํ•˜๊ณ  ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋”๋ผ๋„ ํฌ๊ธฐํ•˜์ง€ ์•Š๊ณ  ๊พธ์ค€ํžˆ ํ•ด๋‚˜๊ฐ€๋Š” ๊ฒŒ ๋ชฉํ‘œ๋‹ค!


1) ํ‰๊ท  ๊ตฌํ•˜๊ธฐ

  • ๋ฐฐ์—ด arr์˜ ํ‰๊ท ๊ฐ’์„ return ํ•˜๋Š” ํ•จ์ˆ˜ ๊ตฌํ•˜๊ธฐ

  • 1) ๋ฐฐ์—ด์˜ ํ•ฉ ๊ตฌํ•˜๊ธฐ

  • 2) ๋ฐฐ์—ด์˜ ํ•ฉ์„ ๋ฐฐ์—ด์˜ ๊ธธ์ด๋กœ ๋‚˜๋ˆ„๊ธฐ
  • โ— int ๋ฐฐ์—ด ๊ธธ์ด๋ฅผ ๊ตฌํ•  ๋•Œ arr.length -> length ๊ด„ํ˜ธ ์•ˆ ๋ถ™์Œ!
1
2
3
4
5
6
7
8
9
10
class Solution {
    public double solution(int[] arr) {
        double sum = 0;
        for(int i=0;i<arr.length;i++)
        {
            sum += arr[i];
        }
        return sum/arr.length;
    }
}



2) x๋งŒํผ ๊ฐ„๊ฒฉ์ด ์žˆ๋Š” n๊ฐœ์˜ ์ˆซ์ž

  • ์ •์ˆ˜ x, ์ž์—ฐ์ˆ˜ n์„ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ž…๋ ฅ ๋ฐ›์Œ. x๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด x์”ฉ ์ฆ๊ฐ€ํ•˜๋Š” ์ˆซ์ž๋ฅผ n๊ฐœ ์ง€๋‹ˆ๋Š” ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฆฌํ„ดํ•˜๋Š” ๋ฆฌ์ŠคํŠธ ๊ตฌํ•˜๊ธฐ

  • 1) for๋ฌธ์„ n๊นŒ์ง€ ๋ฐ˜๋ณตํ•จ. answer[i-1] = x*i;

  • โ— ๋ฐฐ์—ด ์„ ์–ธ์„ ์ œ๋Œ€๋กœ ํ•ด์•ผ ํ•จ!
  • long[] answer = new long[n];
  • long ํƒ€์ž…์˜ ๋ฐฐ์—ด answer์„ ์„ ์–ธํ•˜๊ณ  ํฌ๊ธฐ๋ฅผ n์œผ๋กœ ์ง€์ •ํ•จ. ์˜ˆ๋ฅผ ๋“ค์–ด n์ด ๋ผ๋ฉด 5๊ฐœ์˜ long ๊ฐ’์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐ„์ด ์ƒ๊ธฐ๊ณ  ๊ฐ ์š”์†Œ๋Š” ๊ธฐ๋ณธ ๊ฐ’์ธ 0์œผ๋กœ ์ดˆ๊ธฐํ™” ๋จ.

  • ๋ฐฐ์—ด์„ ์„ ์–ธํ•˜๋Š” ์ด์œ ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ ์ €์žฅํ•  ๋•Œ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด์„œ! 1๊ฐœ์˜ ๋ณ€์ˆ˜๋Š” 1๊ฐœ์˜ ๊ฐ’๋งŒ์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋ฐฐ์—ด ์‚ฌ์šฉ์‹œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์˜ ๋ณ€์ˆ˜๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ 
1
2
3
4
5
6
7
8
9
10
class Solution {
    public long[] solution(int x, int n) {
        long[] answer = new long[n];
        for(int i=1;i<=n;i++)
        {
            answer[i-1] = (long)x*i;
        }
        return answer;
    }
}

์ œํ•œ ์กฐ๊ฑด

  • x๋Š” -10000000 ์ด์ƒ, 10000000 ์ดํ•˜์ธ ์ •์ˆ˜์ž…๋‹ˆ๋‹ค.
  • n์€ 1000 ์ดํ•˜์ธ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค.

    • ์ œํ•œ ์กฐ๊ฑด์„ ๋ณด๋ฉด x*i์˜ ๊ฐ€์žฅ ํฐ ๊ฐ’์ด 10,000,000 * 1000 = 10,000,000,000์ด์–ด์„œ int ๋ฒ”์œ„๋ฅผ ์ดˆ๊ณผํ•˜๋ฏ€๋กœ x์˜ ํƒ€์ž…์„ ๋ณ€ํ™˜ํ•ด์•ผ ํ•จ.
  • ๐Ÿ“Œ ์˜๋ฌธ์  : ์™œ i์˜ ๊ฐ’์€ ํ˜• ๋ณ€ํ™˜ ์•ˆ ํ•˜๊ณ  x์˜ ๊ฐ’์„ ํ˜• ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ์ผ๊นŒ?
    • java์—์„œ ์—ฐ์‚ฐ์„ ํ•  ๋•Œ ๋‘ ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ๋ชจ๋‘ int ํƒ€์ž…์ด๋ฉด ๊ทธ ๊ฒฐ๊ณผ๋„ int ํƒ€์ž…์„ ๊ณ„์‚ฐ๋œ๋‹ค. ํ•˜์ง€๋งŒ x์™€ i์˜ ๊ณฑ์…ˆ์ด int ๋ฒ”์œ„๋ฅผ ๋„˜๋Š” ๊ฐ’์ด ๋  ์ˆ˜ ์žˆ์„ ๋•Œ ๊ทธ ๊ฐ’์„ long ํƒ€์ž…์œผ๋กœ ์•ˆ์ „ํ•˜๊ฒŒ ์ฒ˜๋ฆฌ๋˜๋„๋ก ํ•ด์•ผ ํ•จ!

    • ๊ทธ๋ž˜์„œ ๋‘˜ ์ค‘ ํ•˜๋‚˜๋ผ๋„ long์œผ๋กœ ํ˜• ๋ณ€ํ™˜์„ ํ•˜๋ฉด java๋Š” ๊ณฑ์…ˆ ๊ฒฐ๊ณผ๋ฅผ long์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ฒŒ ๋œ๋‹ค.
    • ์ฆ‰, ์œ„ ์ฝ”๋“œ์—์„œ x๋ฅผ ํ˜• ๋ณ€ํ™˜ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— i๋Š” ๋”ฐ๋กœ ํ˜• ๋ณ€ํ™˜ํ•  ํ•„์š”๊ฐ€ ์—†์ด java๊ฐ€ ์ž๋™์œผ๋กœ i๋ฅผ long์œผ๋กœ ๋ณ€ํ™˜ํ•ด์„œ ๊ณฑ์…ˆ์„ ์ง„ํ–‰ํ•˜๊ฒŒ ๋œ๋‹ค.

    • ๊ทธ๋ ‡๋‹ค๋ฉด i๋ฅผ ํ˜• ๋ณ€ํ™˜ํ•˜๋ฉด ์•ˆ ๋ ๊นŒ? ๋‹ต์€ ๋œ๋‹ค! ํ•˜์ง€๋งŒ, ์ผ๋ฐ˜์ ์œผ๋กœ ์ƒ์ˆ˜๋ฅผ ํ˜• ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ์ด๋ฏธ ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง„ ๊ฐ’์„ ํ˜• ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒŒ ๋” ์ง๊ด€์ ์ด๋‹ค.



3) ์•ฝ์ˆ˜์˜ ํ•ฉ

  • ์ •์ˆ˜ n์„ ์ž…๋ ฅ๋ฐ›์•„ n์˜ ์•ฝ์ˆ˜๋ฅผ ๋ชจ๋‘ ๋”ํ•œ ๊ฐ’์„ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜ ๊ตฌํ•˜๊ธฐ

  • 1) ๋ฐ˜๋ณต๋ฌธ์„ ์ž…๋ ฅ ๋ฐ›์€ ์ •์ˆ˜์˜ ์ˆ˜๋งŒํผ ๋ฐ˜๋ณตํ•˜๊ธฐ

  • 2) ์ž…๋ ฅ๋ฐ›์€ ์ •์ˆ˜๋ฅผ i๋งŒํผ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๊ฐ€ 0์ด ๋  ๋•Œ (์•ฝ์ˆ˜ ๊ตฌํ•˜๊ธฐ) i์˜ ๊ฐ’์„ ๋”ํ•˜๊ธฐ

1
2
3
4
5
6
7
8
9
10
11
12
13
class Solution {
    public int solution(int n) {
        int answer = 0;
        for(int i=1;i<=n;i++)
        {
            if(n%i==0)
            {
                answer+=i;
            }
        }
        return answer;
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
class Solution {
    public int solution(int n) {
        int answer = 0;
        for(int i=1;i<=n/2;i++)
        {
            if(n%i==0)
            {
                answer+=i;
            }
        }
        return answer+n;
    }
}
  • ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ’€์ด๋กœ ๋ณธ ์ฝ”๋“œ, n/2๊นŒ์ง€๋งŒ ๋ฐ˜๋ณต๋ฌธ์„ ๋„๋Š” ์ด์œ ๋Š” ํšจ์œจ์ ์ธ ์•ฝ์ˆ˜๋ฅผ ์ฐพ๊ธฐ ๋•Œ๋ฌธ์ž„. ์˜ˆ๋ฅผ ๋“ค์–ด 12์˜ ์•ฝ์ˆ˜๋Š” 1, 2, 3, 4, 6, 12์ด๋‹ค.

  • ์–ด๋–ค ์ˆœ์˜ ์ ˆ๋ฐ˜๋ณด๋‹ค ํฐ ์ˆ˜๋Š” ๊ทธ ์ˆ˜์˜ ์•ฝ์ˆ˜๊ฐ€ ๋  ์ˆ˜ ์—†๋‹ค! ์œ„์˜ ์˜ˆ์‹œ๋กœ 12์˜ ์ ˆ๋ฐ˜์ธ 6๋ณด๋‹ค ์ž‘์€ ์ˆ˜๋Š” 1, 2, 3, 4, 6 ์ด๊ฒƒ๋งŒ ๋ณด๊ณ  n์ธ 12๋Š” ๋งˆ์ง€๋ง‰์— ๋”ฐ๋กœ ๋”ํ•ด์„œ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋ฉด ๋œ๋‹ค.



4) ๋ฌธ์ž์—ด์„ ์ •์ˆ˜๋กœ ๋ฐ”๊พธ๊ธฐ

1
2
3
4
5
6
class Solution {
    public int solution(String s) {
        int answer = Integer.valueOf(s);
        return answer;
    }
}
1
2
3
4
5
6
class Solution {
    public int solution(String s) {
        int answer = Integer.parseInt(s);
        return answer;
    }
}
  • Integer.valueOf(s)

    • valueOf ๋ฉ”์„œ๋“œ๋Š” ๋ฌธ์ž์—ด์„ Integer ๊ฐ์ฒด๋กœ ๋ณ€ํ™คํ•จ. ๋งŒ์•ฝ ๋ณ€ํ™˜๋œ ๊ฐ’์„ int ํƒ€์ž… ๋ณ€์ˆ˜์— ์ €์žฅํ•˜๋ฉด ์ž๋™์œผ๋กœ ์–ธ๋ฐ•์‹ฑ ๊ณผ์ •์ด ๋ฐœ์ƒํ•จ. ์ด ๋ฉ”์„œ๋“œ๋Š” ์บ์‹ฑ์„ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ๊ฐ™์€ ๊ฐ’์„ ์—ฌ๋Ÿฌ ๋ฒˆ ๋ณ€ํ™˜ํ•  ๊ฒฝ์šฐ ์„ฑ๋Šฅ์ด ์ข‹์Œ
  • Integer.parseInt(s)

    • parseInt ๋ฉ”์„œ๋“œ๋Š” ๋ฌธ์ž์—ด์„ int ํƒ€์ž…์œผ๋กœ ์ง์ ‘ ๋ณ€ํ™˜ํ•จ. ๋ฐ˜ํ™˜๊ฐ’์ด ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ํƒ€์ž…์ธ int ์ด๋ฏ€๋กœ ์ถ”๊ฐ€์ ์ธ ๊ฐ์ฒด ์ƒ์„ฑ์ด ์—†๊ณ , ๋ฉ”๋ชจ๋ฆฌ ํšจ์œจ์„ฑ์ด ๋” ์ข‹์Œ.



5) ์ž๋ฆฟ์ˆ˜ ๋”ํ•˜๊ธฐ

  • ์ž์—ฐ์ˆ˜ N์ด ์ฃผ์–ด์ง€๊ณ  N์˜ ๊ฐ ์ž๋ฆฟ์ˆ˜์˜ ํ•ฉ์„ ๊ตฌํ•˜๊ธฐ

  • 1) while๋ฌธ์„ ํ†ตํ•ด n์ด 0์ด ์•„๋‹ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•˜๊ธฐ (์ž์—ฐ์ˆ˜ N์ด ์–ด๋– ํ•œ ๊ฐ’์ธ์ง€ ๋ชจ๋ฅด๋‹ˆ๊นŒ)

  • 2) n์„ 10์œผ๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ ๋”ํ•˜๊ธฐ ์˜ˆ๋ฅผ ๋“ค์–ด 123 ์ด๋ฉด 3 ์ด ๋จผ์ € ๋”ํ•ด์ง. n์˜ ๊ฐ’์„ 10์œผ๋กœ ๋‚˜๋ˆˆ ๊ฐ’์œผ๋กœ ๊ฐฑ์‹ ํ•˜๊ธฐ. ์ด ๊ณผ์ •์„ n์ด 0์ด ์•„๋‹ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•˜๊ธฐ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import java.util.*;

public class Solution {
    public int solution(int n) {
        int answer = 0;

        while(n!=0)
        {
            answer += (n%10);  
            n = n/10; 
        }
        return answer;
    }
}



6) ๋‚˜๋จธ์ง€๊ฐ€ 1์ด ๋˜๋Š” ์ˆ˜ ์ฐพ๊ธฐ

  • ์ž์—ฐ์ˆ˜ n์„ x๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๊ฐ€ 1์ด ๋˜๋„๋ก ํ•˜๋Š” ๊ฐ€์žฅ ์ž‘์€ ์ž์—ฐ์ˆ˜ x ๊ตฌํ•˜๊ธฐ

  • 1) min ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•ด์„œ ์ œ์ผ ํฐ ๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•˜๊ธฐ
  • 2) ๋ฐ˜๋ณต๋ฌธ์„ n๊นŒ์ง€ ๋ฐ˜๋ณตํ•˜๊ณ  n์„ i๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๊ฐ€ 1์ด ๋  ๋•Œ ์ตœ์†Ÿ๊ฐ’ ๊ตฌํ•˜๊ธฐ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import java.util.*;
class Solution {
    public int solution(int n) {
        int min = Integer.MAX_VALUE; // min์„ ์ œ์ผ ํฐ ๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•˜๊ธฐ
        
        for(int i=1;i<=n;i++)
        {
            if(n%i==1)
            {
                if(min>i)
                {
                    min = i;
                }
            }
        }
        return min;
    }
}
  • โ— ๋ณ€์ˆ˜๋ฅผ ์ œ์ผ ํฐ ๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™” - Integer.MAX_VALUE



7) ์ง์ˆ˜์™€ ํ™€์ˆ˜

  • ์ •์ˆ˜ num์ด ์ง์ˆ˜์ผ ๊ฒฝ์šฐ โ€œEvenโ€์„ ๋ฐ˜ํ™˜ํ•˜๊ณ  ํ™€์ˆ˜์ผ ๊ฒฝ์šฐ โ€œOddโ€๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ฒŒ

  • 1) ์‚ผํ•ญ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ง์ˆ˜์ผ ๋•Œ โ€œEvenโ€, ํ™€์ˆ˜์ผ ๋•Œ โ€œOddโ€ ์ถœ๋ ฅํ•˜๊ฒŒ

1
2
3
4
5
class Solution {
    public String solution(int num) {
        return num%2 == 0 ? "Even" : "Odd";
    }
}



8) ๋ฌธ์ž์—ด ๋‚ด p์™€ y์˜ ๊ฐœ์ˆ˜

  • ๋Œ€, ์†Œ๋ฌธ์ž๊ฐ€ ์„ž์—ฌ์žˆ๋Š” ๋ฌธ์ž์—ด s, s์— โ€˜pโ€™์˜ ๊ฐœ์ˆ˜์™€ โ€˜yโ€™์˜ ๊ฐœ์ˆ˜๋ฅผ ๋น„๊ตํ•ด ๊ฐ™์œผ๋ฉด True, ๋‹ค๋ฅด๋ฉด False๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜ ๊ตฌํ•˜๊ธฐ

  • Java์—์„œ๋Š” ๋ฌธ์ž์—ด์„ ๋น„๊ตํ•  ๋•Œ ==๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ์ฒด์˜ ์ฐธ์กฐ๋ฅผ ๋น„๊ตํ•˜๊ฒŒ ๋˜๋ฏ€๋กœ equals๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ๋จ!

  • 1) ๋จผ์ € ๋ฌธ์ž์—ด s๋ฅผ ๋ชจ๋‘ ๋Œ€๋ฌธ์ž๋กœ ๋ณ€ํ™˜ -> s = s.toUpperCase();

  • 2) ๋ฌธ์ž์—ด์˜ ๋ฌธ์ž๋ฅผ ํ•˜๋‚˜์”ฉ ์ž˜๋ผ์„œ ๋ฐฐ์—ด์— ์ €์žฅ -> String[] str = s.split("");

  • 3) ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋งŒํผ ๋ฐ˜๋ณตํ•˜๊ณ  ๋ฌธ์ž์—ด์ด โ€œPโ€์ผ ๊ฒฝ์šฐ p_num ๊ฐ’ ์ฆ๊ฐ€, ๋ฌธ์ž์—ด์ด โ€œYโ€์ผ ๊ฒฝ์šฐ y_num ๊ฐ’ ์ฆ๊ฐ€
  • 4) ์‚ผํ•ญ์—ฐ์‚ฐ์ž๋ฅผ ํ†ตํ•ด ๋ฐ˜ํ™˜
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import java.util.*;
class Solution {
    boolean solution(String s) {
        boolean answer = true;
        int p_num = 0;
        int y_num = 0;
        s = s.toUpperCase(); // ๋ฌธ์ž์—ด s๋ฅผ ๋ชจ๋‘ ๋Œ€๋ฌธ์ž๋กœ ๋ณ€ํ™˜
        
        String[] str = s.split(""); // PPOOOYY
        
        for(int i=0;i<str.length;i++)
        {
            if(str[i].equals("P"))
            {
                p_num++;
            }
            else if(str[i].equals("Y"))
            {
                y_num++;
            }
        }
         return (p_num == y_num ? answer : !answer);
    }
}



9) ์ž์—ฐ์ˆ˜ ๋’ค์ง‘์–ด ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค๊ธฐ

  • ์ž์—ฐ์ˆ˜ n์„ ๋’ค์ง‘์–ด ๊ฐ ์ž๋ฆฌ ์ˆซ์ž๋ฅผ ์›์†Œ๋กœ ๊ฐ€์ง€๋Š” ๋ฐฐ์—ด ํ˜•ํƒœ๋กœ ๋ฆฌํ„ด

  • 1) long ํƒ€์ž… ์ž์—ฐ์ˆ˜๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ -> String s = String.valueOf(n);
  • 2) ๋ฌธ์ž์—ด์˜ ๋ฌธ์ž๋ฅผ ํ•˜๋‚˜์”ฉ ์ž˜๋ผ์„œ ๋ฐฐ์—ด์— ์ €์žฅ -> String[] str = s.split("");

  • 3) ๋ฌธ์ž์—ด์„ ์ •์ˆ˜๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ๋’ค์ง‘์–ด์„œ ์ €์žฅ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import java.util.*;
class Solution {
    public int[] solution(long n) {
        String s = String.valueOf(n); 
        String[] str = s.split(""); // 1 2 3 4 5
        int[] answer = new int[str.length];
        int idx = 0;
        for(int i=str.length-1;i>=0;i--)
        {
            answer[idx++] = Integer.parseInt(str[i]); // ๋’ค์ง‘์–ด์„œ ์ €์žฅ
        }
        
        return answer;
    }
}
  • โ— ํ‹€๋ฆฐ ๋ถ€๋ถ„ : str.length ์ด๋ฉด 5์ด๋ฏ€๋กœ str.length-1๋ถ€ํ„ฐ ์‹œ์ž‘ํ–ˆ์–ด์•ผํ•จ. ์ฒ˜์Œ str[idx++] ์— ์ €์žฅํ–ˆ๋Š”๋ฐ ๊ทธ๋Ÿฌ๋ฉด ๊ฒฐ๊ณผ๊ฐ€ [5,4,3,4,5] ๋กœ ๋˜๋‹ˆ ์ƒˆ๋กœ์šด ๋ณ€์ˆ˜์ธ answer[idx++]๋กœ ์ €์žฅํ•ด์•ผ ํ•จ.



10) ์ •์ˆ˜ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ๋ฐฐ์น˜ํ•˜๊ธฐ

  • ์ •์ˆ˜ n์˜ ๊ฐ ์ž๋ฆฟ์ˆ˜๋ฅผ ํฐ ๊ฒƒ๋ถ€ํ„ฐ ์ž‘์€ ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ ์ƒˆ๋กœ์šด ์ •์ˆ˜๋ฅผ ๋ฆฌํ„ด

  • 1) ์ž์—ฐ์ˆ˜ n์„ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ -> String s = String.valueOf(n);

  • 2) ๋ฌธ์ž์—ด์„ ๋ฌธ์ž ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜ -> char[] ch = s.toCharArray();

  • 3) ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ

  • 4) StringBuilder ๋ฅผ ์ด์šฉํ•˜์—ฌ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ

  • 5) ๋ฌธ์ž๋ฅผ ์ •์ˆ˜๋กœ ๋ณ€ํ™˜

1
2
3
4
5
6
7
8
9
10
11
12
import java.util.*;
class Solution {
    public long solution(long n) {
      
        String s = String.valueOf(n); // ์ •์ˆ˜๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜
        char[] ch = s.toCharArray(); // ๋ฌธ์ž์—ด์„ ๋ฌธ์ž ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜
        Arrays.sort(ch); // ์˜ค๋ฆ„์ฐจ์ˆœ 1 1 2 3 7 8
        StringBuilder sb = new StringBuilder(new String(ch)).reverse(); // ๋‚ด๋ฆผ์ฐจ์ˆœ
        
        return Long.parseLong(sb.toString());
    }
}
  • StringBuilder๋Š” ๋ฌธ์ž์—ด์„ ํšจ์œจ์ ์œผ๋กœ ์ˆ˜์ •ํ•˜๊ณ  ์กฐ์ž‘ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ํด๋ž˜์Šค, toString() ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•ด์•ผ ์‹ค์ œ ๋ฌธ์ž์—ด ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ์Œ.

  • StringBuilder๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ ๋ฌธ์ž์—ด์„ ์ €์žฅํ•˜์ง€๋งŒ ์ง์ ‘์ ์œผ๋กœ ๋ฌธ์ž์—ด์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•  ์ˆ˜๋Š” ์—†๊ธฐ ๋•Œ๋ฌธ์— toString() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ StringBuilder์— ์ €์žฅ๋œ ๋‚ด์šฉ์„ ๋ฌธ์ž์—ด๋กœ ๋ฐ˜ํ™˜๋ฐ›๋Š” ๊ฒƒ

This post is licensed under CC BY 4.0 by the author.