반응형
오랜만에 문제를 풀었다.. 차량파손 + 상갓집방문 + 중간고사까지 .. 정말 힘들었던 4월 이였던 거 같다..
이랬던 저랬든 문제는 계속 풀어야 하니깐!
열심히 풀어보자는 마음으로 문제를 풀었다! 무려 3시간이 걸린 문제,,
#include <stdio.h>
#include <stdlib.h>
#include <limits.h> //
int main(){
int i=0, k, min_value=0, n, min_num = 0;
scanf("%d",&k); // 얼음의 갯수 입력 받기
int* ice_arr = (int*)malloc(sizeof(int) * k); // 얼음갯수만큼 동적할당
for(i=0; i<k; i++){ // 얼음을 꺠기위한 힘 입력받기
scanf("%d",&ice_arr[i]);
if(ice_arr[i] == -1){
n = i; // 펭귄의 위치 저장
}
}
// 왼쪽에서 가장 작은 값 찾기
for(i=0; i<n; i++){
if(min_num == 0 || ice_arr[i] < min_num){ // 최솟값 갱신
min_num = ice_arr[i];
}
}
// 오른쪽에서 가장 작은 값 찾기
min_value = INT_MAX; // 최솟값을 가장 큰 값으로 초기화
for(i = n + 1; i < k; i++) { // 펭귄을 제외하고 오른쪽에서 가장 작은 값 찾기
if(ice_arr[i] < min_value) {
min_value = ice_arr[i];
}
}
min_value += min_num; // 왼쪽에서 가장 작은 값과 오른쪽에서 가장 작은 값을 더하여 최종 결과 계산
printf("%d\n", min_value);
free(ice_arr);
return 0;
}
처음에는 조건 설정을 잘 못해서 첫번째 예시는 출력성공이였지만, 두번째는 안되고 또 세번째는 되고 그래서 진짜 대환장파티였다..
다행히 오른쪽에서 가장 작은 값을 찾는 부분에서 조건을 잘못 설정했다는 걸 확인하고 초기 최솟값을 다시 설정해서 비교했다.
진짜.. 브론즈인 나에겐 너무 어려운 문제였던 거 같다!!
고수님들의 코드 조언은 언제나 감사합니다..
반응형
'C_C++' 카테고리의 다른 글
백준 28431 번 C언어 풀이 (0) | 2024.04.25 |
---|---|
백준 10768번 특별한날 C언어 풀이 (0) | 2024.04.20 |
백준 2083번 럭비클럽 (C 풀이) (0) | 2024.04.18 |
백준 2845번 파티가 끝나고 난 뒤 (C 풀이) (0) | 2024.04.18 |
백준 4999번 아! C풀이 (0) | 2024.04.17 |