programmers / level.2 / ์ด์ง„ ๋ณ€ํ™˜ ๋ฐ˜๋ณตํ•˜๊ธฐ(C++)

2023. 1. 11. 16:32ยท๐Ÿ–ฅ๏ธ Study Note/Coding Test

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

๋ฌธ์ œ ์„ค๋ช…

0๊ณผ 1๋กœ ์ด๋ฃจ์–ด์ง„ ์–ด๋–ค ๋ฌธ์ž์—ด x์— ๋Œ€ํ•œ ์ด์ง„ ๋ณ€ํ™˜์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

  1. x์˜ ๋ชจ๋“  0์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
  2. x์˜ ๊ธธ์ด๋ฅผ c๋ผ๊ณ  ํ•˜๋ฉด, x๋ฅผ "c๋ฅผ 2์ง„๋ฒ•์œผ๋กœ ํ‘œํ˜„ํ•œ ๋ฌธ์ž์—ด"๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, x = "0111010"์ด๋ผ๋ฉด, x์— ์ด์ง„ ๋ณ€ํ™˜์„ ๊ฐ€ํ•˜๋ฉด x = "0111010" -> "1111" -> "100" ์ด ๋ฉ๋‹ˆ๋‹ค.

0๊ณผ 1๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด s๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. s๊ฐ€ "1"์ด ๋  ๋•Œ๊นŒ์ง€ ๊ณ„์†ํ•ด์„œ s์— ์ด์ง„ ๋ณ€ํ™˜์„ ๊ฐ€ํ–ˆ์„ ๋•Œ, ์ด์ง„ ๋ณ€ํ™˜์˜ ํšŸ์ˆ˜์™€ ๋ณ€ํ™˜ ๊ณผ์ •์—์„œ ์ œ๊ฑฐ๋œ ๋ชจ๋“  0์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ฐ๊ฐ ๋ฐฐ์—ด์— ๋‹ด์•„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

์ œํ•œ์‚ฌํ•ญ

  • s์˜ ๊ธธ์ด๋Š” 1 ์ด์ƒ 150,000 ์ดํ•˜์ž…๋‹ˆ๋‹ค.
  • s์—๋Š” '1'์ด ์ตœ์†Œ ํ•˜๋‚˜ ์ด์ƒ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

s result
"110010101001" [3,8]
"01110" [3,3]
"1111111" [4,1]

์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์ž…์ถœ๋ ฅ ์˜ˆ #1

  • "110010101001"์ด "1"์ด ๋  ๋•Œ๊นŒ์ง€ ์ด์ง„ ๋ณ€ํ™˜์„ ๊ฐ€ํ•˜๋Š” ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
ํšŒ์ฐจ ์ด์ง„ ๋ณ€ํ™˜ ์ด์ „ ์ œ๊ฑฐํ•  0์˜ ๊ฐœ์ˆ˜ 0 ์ œ๊ฑฐ ํ›„ ๊ธธ์ด  ์ด์ง„ ๋ณ€ํ™˜ ๊ฒฐ๊ณผ
1 "110010101001" 6 6 "110"
2 "110" 1 2 "10"
3 "10" 1 1 "1"
  • 3๋ฒˆ์˜ ์ด์ง„ ๋ณ€ํ™˜์„ ํ•˜๋Š” ๋™์•ˆ 8๊ฐœ์˜ 0์„ ์ œ๊ฑฐํ–ˆ์œผ๋ฏ€๋กœ, [3,8]์„ return ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #2

  • "01110"์ด "1"์ด ๋  ๋•Œ๊นŒ์ง€ ์ด์ง„ ๋ณ€ํ™˜์„ ๊ฐ€ํ•˜๋Š” ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
ํšŒ์ฐจ  ์ด์ง„ ๋ณ€ํ™˜ ์ด์ „ ์ œ๊ฑฐํ•  0์˜ ๊ฐœ์ˆ˜ ์ œ๊ฑฐ ํ›„ ๊ธธ์ด ์ด์ง„ ๋ณ€ํ™˜ ๊ฒฐ๊ณผ
1 "01110" 2 3 "11"
2 "11" 0 2 "10"
3 "10" 1 1 "1"
  • 3๋ฒˆ์˜ ์ด์ง„ ๋ณ€ํ™˜์„ ํ•˜๋Š” ๋™์•ˆ 3๊ฐœ์˜ 0์„ ์ œ๊ฑฐํ–ˆ์œผ๋ฏ€๋กœ, [3,3]์„ return ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #3

  • "1111111"์ด "1"์ด ๋  ๋•Œ๊นŒ์ง€ ์ด์ง„ ๋ณ€ํ™˜์„ ๊ฐ€ํ•˜๋Š” ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
ํšŒ์ฐจ  ์ด์ง„ ๋ณ€ํ™˜ ์ด์ „ ์ œ๊ฑฐํ•  0์˜ ๊ฐœ์ˆ˜ ์ œ๊ฑฐ ํ›„ ๊ธธ์ด ์ด์ง„ ๋ณ€ํ™˜ ๊ฒฐ๊ณผ
1 "1111111" 0 7 "111"
2 "111" 0 3 "11"
3 "11" 0 2 "10"
4 "10" 1 1 "1"
  • 4๋ฒˆ์˜ ์ด์ง„ ๋ณ€ํ™˜์„ ํ•˜๋Š” ๋™์•ˆ 1๊ฐœ์˜ 0์„ ์ œ๊ฑฐํ–ˆ์œผ๋ฏ€๋กœ, [4,1]์„ return ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‚ด ํ•ด๋‹ต

#include <string>
#include <vector>

using namespace std;

vector<int> solution(string s) {
    vector<int> answer;
    int i_total_zero = 0;
    int i_repeat_count = 0;
    
    while(s.size() != 1)
    {
        int i_str_size = 0;
        ++i_repeat_count;
        for(int i = 0; i < s.size(); ++i)
        {
            if(s[i] == '1')
                ++i_str_size;
            else
                ++i_total_zero;
        }
    
        s = "";
        while(i_str_size > 0)
        {
            char c = i_str_size % 2 == 1 ? '1' : '0';
            s = c + s;
            i_str_size /= 2;
        }
    }
    
    answer.push_back(i_repeat_count);
    answer.push_back(i_total_zero);
    
    return answer;
}
์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'๐Ÿ–ฅ๏ธ Study Note > Coding Test' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

programmers / level.1 / ํฐ์ผ“๋ชฌ(C++)  (0) 2023.02.06
programmers / level.2 / ์ˆซ์ž์˜ ํ‘œํ˜„(C++)  (0) 2023.01.11
programmers / level.2 / ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ(C++)  (0) 2023.01.11
programmers / level.2 / ์ตœ์†Ÿ๊ฐ’ ๋งŒ๋“ค๊ธฐ(C++)  (0) 2023.01.11
programmers / level.2 / ์—ฐ์Šต๋ฌธ์ œ : JadenCase ๋ฌธ์ž์—ด ๋งŒ๋“ค๊ธฐ(C++)  (0) 2023.01.08
'๐Ÿ–ฅ๏ธ Study Note/Coding Test' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • programmers / level.1 / ํฐ์ผ“๋ชฌ(C++)
  • programmers / level.2 / ์ˆซ์ž์˜ ํ‘œํ˜„(C++)
  • programmers / level.2 / ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ(C++)
  • programmers / level.2 / ์ตœ์†Ÿ๊ฐ’ ๋งŒ๋“ค๊ธฐ(C++)
Beankong_
Beankong_
์ฃผ๋‹ˆ์–ด ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ๊ทธ๋ž˜๋จธ ๊ณต๋ถ€ ๊ธฐ๋ก
  • Beankong_
    Beankong's Devlog
    Beankong_
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ์ „์ฒด ๊ธ€ (146)
      • โ›… Daily (0)
      • ๐Ÿ–ฅ๏ธ Study Note (2)
        • C++ (1)
        • Unreal Engine (5)
        • Coding Test (123)
        • Design Patteren (5)
        • VCS (Git..) (1)
        • Server (1)
      • ๐Ÿงญ Devlog (8)
        • ์˜ค๋‹ต๋…ธํŠธ (4)
        • UE5 GameLift Server Test Project (1)
        • TIL (3)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ๋งํฌ

    • ๊ณต์ง€์‚ฌํ•ญ

    • ์ธ๊ธฐ ๊ธ€

    • ํƒœ๊ทธ

      ๊ฒŒ์ž„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ
      ๊ฒŒ์ž„ํ”„๋กœ๊ทธ๋ž˜๋ฐ
      UnrealEngine
      ์ฝ”๋”ฉํ…Œ์ŠคํŠธ
      ์•Œ๊ณ ๋ฆฌ์ฆ˜
      unrealengine build system
      ํ—ฌํ…Œ์ด์ปค
      ๊ฒŒ์ž„ ๋ชจ์ž‘
      propertyaccess
      ๊ฒŒ์ž„ ๊ฐœ๋ฐœ
      OnlineSubsystem
      ๊ทธ๋ž˜ํ”„ ์ˆœํšŒ
      UnrealEngine5
      unrealengine module
      ๊ทธ๋ฆฌ๋””(greedy)
      ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
      cpp
      programmers
      ํ”„๋ฃŒ๊ทธ๋ž˜๋จธ์Šค
      ์ตœ๋‹จ ๊ฑฐ๋ฆฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜
    • ์ตœ๊ทผ ๋Œ“๊ธ€

    • ์ตœ๊ทผ ๊ธ€

    • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
    Beankong_
    programmers / level.2 / ์ด์ง„ ๋ณ€ํ™˜ ๋ฐ˜๋ณตํ•˜๊ธฐ(C++)
    ์ƒ๋‹จ์œผ๋กœ

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”