[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]level.2 - ์‹œ์†Œ ์ง๊ฟ(C++)

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

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

 

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

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

programmers.co.kr

๋‚ด ํ’€์ด

1. ์ด์ค‘ for๋ฌธ

์‹œ๊ฐ„ ์ดˆ๊ณผ๋Š” ์•ˆ๋‚˜์ง€๋งŒ ์‹คํ–‰์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฐ๋‹ค.

#include <string>
#include <vector>
#include <algorithm>

using namespace std;

long long solution(vector<int> weights) {
    long long answer = 0;
    
    // ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ
    sort(weights.begin(), weights.end());
    
    int same_count = 0;
    
    for(int i = 0; i < weights.size()-1; ++i)
    {
        int left = weights[i];
        
        for(int j = i+1; j < weights.size(); ++j)
        {
            int right = weights[j];
            
            if( left == right
               || left*2 == right
               || left*3 == right*2
               || left*4 == right*3)
            {
                ++answer;
            }
        }
        
    }
    
    return answer;
}

2. map

map์˜ key์™€ value ๋ฅผ long long ํƒ€์ž…์œผ๋กœ ํ•ด์ค˜์•ผ ํ•œ๋‹ค.

#include <string>
#include <vector>
#include <map>

using namespace std;

long long solution(vector<int> weights) {
    long long answer = 0;
    map<long long, long long> weight_map;
    
    for(const auto& w : weights)
    {
        ++weight_map[w];
    }
    
    for(const auto& w : weight_map)
    {
        answer += (w.second * (w.second-1))/2;
        
        if(weight_map.end() != weight_map.find(w.first * 2))
            answer += weight_map[w.first * 2] * w.second;
        
        if(0 == w.first % 2 && weight_map.end() != weight_map.find(w.first / 2 * 3))
            answer += weight_map[w.first / 2 * 3] * w.second;
        
        if(0 == w.first % 3 && weight_map.end() != weight_map.find(w.first / 3 * 4))
            answer += weight_map[w.first  / 3 * 4] * w.second;
            
    } 
    
    return answer;
}

์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)

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

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]level.2 - ํ˜ธํ…” ๋Œ€์‹ค(C++)  (0) 2023.06.18
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]level.2 - ์˜์–ด ๋๋ง์ž‡๊ธฐ(C++)  (0) 2023.06.18
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]level.1 - ํ•ธ๋“œํฐ ๋ฒˆํ˜ธ ๊ฐ€๋ฆฌ๊ธฐ(C++)  (0) 2023.06.11
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]level.2 - ์—ฐ์†๋œ ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ํ•ฉ(C++)  (0) 2023.06.10
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] level.2 - ์กฐ์ด์Šคํ‹ฑ(C++)  (1) 2023.06.10
'๐Ÿ–ฅ๏ธ Study Note/Coding Test' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]level.2 - ํ˜ธํ…” ๋Œ€์‹ค(C++)
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]level.2 - ์˜์–ด ๋๋ง์ž‡๊ธฐ(C++)
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]level.1 - ํ•ธ๋“œํฐ ๋ฒˆํ˜ธ ๊ฐ€๋ฆฌ๊ธฐ(C++)
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]level.2 - ์—ฐ์†๋œ ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ํ•ฉ(C++)
Beankong_
Beankong_
์ฃผ๋‹ˆ์–ด ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ๊ทธ๋ž˜๋จธ ๊ณต๋ถ€ ๊ธฐ๋ก
  • Beankong_
    Beankong's Devlog
    Beankong_
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ์ „์ฒด ๊ธ€ (141)
      • โ›… Daily (0)
      • ๐Ÿ–ฅ๏ธ Study Note (135)
        • Unreal Engine (5)
        • Coding Test (123)
        • Design Patteren (5)
        • VCS (Git..) (1)
        • Server (1)
      • ๐Ÿงญ Devlog (6)
        • ์˜ค๋‹ต๋…ธํŠธ (2)
        • UE5 GameLift Server Test Project (1)
        • TIL (3)
  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
Beankong_
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]level.2 - ์‹œ์†Œ ์ง๊ฟ(C++)
์ƒ๋‹จ์œผ๋กœ

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