728x90
반응형
https://www.acmicpc.net/problem/1270
1. Logic
배열에 하나씩 카운트 해주기에는 배열을 만들어놓고 순회해야 하기 떄문에 key-value를 사용해서 확인하는 c++에는 map, 파이썬으로는 딕셔너리 자료구조를 활용해서 풀이했다.
풀이 순서로는 입력을 받고 각 병사에 해당하는 숫자를 map, 딕셔너리에 1씩 count를 올려저장한 후
그중 최대값을 찾아서 key값을 출력해주면 된다.
2. Code
C++
#include<bits/stdc++.h>
using namespace std;
int main() {
ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
int n;
cin >> n;
while(n--) {
unordered_map<long long, int> land;
long long cur;
cin >> cur;
long long landNum;
long long maxNum = -1;
for(int i = 0; i < cur; i++) {
long long num;
cin >> num;
land[num]++;
if(land[num] > maxNum) {
maxNum = land[num];
landNum = num;
}
}
if(maxNum > cur/2) cout << landNum << '\n';
else cout << "SYJKGW" << '\n';
}
}
Python
import sys
from collections import defaultdict
input = sys.stdin.readline
n = int(input())
for _ in range(n):
a = list(map(int, input().split()))
cur = a[0]
d = defaultdict(int)
for i in range(1, len(a)):
d[a[i]]+=1
value = list(d.values())
max_val = max(value)
if max_val > cur/2:
key = list(d.keys())
for i in range(0, len(key)):
if d[key[i]] == max_val:
print(key[i])
else:
print("SYJKGW")
알고리즘 Solve 후 제가 생각한 Logic을 기록하는 개인 공부 블로그입니다.
내용 중 최적화가 가능한 부분등은 언제든지 댓글로 틀린 부분 및 피드백 주시면 공부 및 반영하겠습니다🧐
728x90
반응형
'Algorithm > Beakjoon' 카테고리의 다른 글
[백준/Baekjoon] 1535 안녕 C++/Python :: Dynamic Programming (0) | 2024.03.07 |
---|---|
[백준/Baekjoon] 11060 점프 점프 C++/Python :: BFS (0) | 2024.02.29 |
[백준/Baekjoon] 2161 카드1 C++ :: Queue (0) | 2024.02.21 |
[백준/Baekjoon] 2446 별 찍기-9 C++ :: Implementation (0) | 2024.02.15 |
[백준/Baekjoon] 1487 물건 팔기 C++ :: Brute Force (0) | 2024.02.11 |