본문 바로가기

C++/코드트리

[코드트리] 이상한 폭탄3

 

https://www.codetree.ai/missions/5/problems/strange-bomb-3?&utm_source=clipboard&utm_medium=text 

 

코드트리 | 코딩테스트 준비를 위한 알고리즘 정석

국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.

www.codetree.ai

 

-k ~  +k까지 탐색하였고 범위를 넘거나 i == j인 경우는 건너뛰었다.

만약  같은 숫자라서 터진다면 터트리고 최댓값 갱신 후 더이상 비교하지 않았다.

같은 수를 여러번 만나면 계속 터져서,, break해서 탈출시켰다. 근데 그냥 used 배열로 처리해도 될 것 같다.

#include <iostream>
#include <algorithm>
using namespace std;
int n, k, map[101], dat[1000001];
int main() {
    cin >> n >> k;
    for(int i=0; i<n; i++)  
        cin >> map[i];
    
    int answer = 0, answerNum = 0;
    for(int i=0; i<n; i++){
        for(int j = i - k; j<= i + k; j++){
            if(j < 0 || j > n || i == j) continue;
            if(map[i] == map[j]){
                // cout << i << " : " << map[i] << ", " << j << " : " << map[j] << '\n';
                dat[map[i]]++;
                if(answer < dat[map[i]]){
                    answerNum = map[i];
                    answer = dat[map[i]];
                }
                break;
            }
        }
    }

    cout << answerNum;
    return 0;
}

'C++ > 코드트리' 카테고리의 다른 글

인증용 테스트 글  (0) 2023.09.02
[코드트리] 초기 수열 복원하기  (0) 2023.08.29
[코드트리] 독서실의 거리두기 4  (0) 2023.08.25
[코드트리] A, B, C, D 찾기 2  (0) 2023.08.25
[코드트리] 훌륭한 점프  (0) 2023.08.23