SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
풀이 과정
입력받은 값을 asb()를 이용해 절대값으로 바꿔주고, min_dis(목표 지점에서 가장 가까운 돌까지 거리)과 비교해 최소 거리와 같다면 cnt++, 더 작은 최소 거리가 나온다면 min_dis = temp, cnt = 1로 갱신해주었다. 이때 min_dis의 초기값은 최소를 구하는 문제이므로 최대값인 100000에 1을 더해주었다. 100000을 초기값으로 해도 되지만, input과 관계없는 값으로 초기화 하고 싶어서 100001로 주었다.
느낀 점
이번 문제에서는 MAX값에서 0을 하나 빠트려 1회 failed를 받았다. 항상 MAX, MIN과 같은 경계 값을 체크하자.
#include<bits/stdc++.h>
using namespace std;
int temp, cnt, n, min_dis = 100001;
int main() {
int T;
cin >> T;
for (int t = 0; t < T; t++) {
cnt = 0; min_dis = 100001;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> temp;
temp = abs(temp);
if (min_dis == temp) cnt++;
else if(min_dis > temp) {
cnt = 1;
min_dis = temp;
}
}
cout << "#" << t + 1 << " " << min_dis << " " << cnt << "\n";
}
return 0;
}
'알고리즘 : C++ > SWEA Expert Academy' 카테고리의 다른 글
1288. 새로운 불면증 치료법 (0) | 2023.05.15 |
---|---|
1284. 수도 요금 경쟁 (0) | 2023.05.15 |
1204. [S/W 문제해결 기본] 1일차 - 최빈수 구하기 (0) | 2023.05.15 |
1206. [S/W 문제해결 기본] 1일차 - View (0) | 2023.05.07 |