<문제>
https://www.acmicpc.net/problem/23292
23292번: 코딩 바이오리듬
바이오리듬(biorhythm)이라는 이론을 들어본 적 있는가? 바이오리듬은 인체에 신체,감성,지성의 세가지 주기가 생년월일의 입력에 따라 어떤 패턴으로 나타나고, 이 패턴의 조합에 따라 능력이나
www.acmicpc.net
<내가 작성한 답>
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
char bir[9], input[9], out[9];
int max = 0, testcase, answer;
int i, j;
scanf("%s", bir); //생일을 bir 배열에 바로 저장해줌.
scanf("%d", &testcase); //testcase라고 썼지만 날짜 몇번 입력할건지에 대한 변수
while (testcase--) {
scanf("%s", input); //날짜 input배열에 저장함.
int a, b, c;
a = b = c = 0;
for (i = 0; i < 4; i++) {
a += ((bir[i] - '0') - (input[i] - '0')) * ((bir[i] - '0') - (input[i] - '0'));
}
for (; i < 6; i++) {
b += ((bir[i] - '0') - (input[i] - '0')) * ((bir[i] - '0') - (input[i] - '0'));
}
for (; i < 8; i++) {
c += ((bir[i] - '0') - (input[i] - '0')) * ((bir[i] - '0') - (input[i] - '0'));
}
answer = a * b * c;
// 입력해준 input배열과 생일 bir배열을 통해 answer (코딩 바이오리듬)을 계산함.
if (answer > max) {
max = answer;
for (i = 0; i < 8; i++) {
out[i] = input[i];
}
}
/*input배열에 저장한 날짜가 max에 저장되어있는 코딩 바이오리듬보다 크다면
out배열에 input배열 저장하기.*/
else if (answer == max) { //만약 나온 코딩 바이오리듬이 현재 max와 같다면 날짜비교
for (i = 0; i < 8; i++) { //처음부터 날짜를 비교하기 시작
if (input[i] < out[i] || input[i] > out[i]) {
/*
현재 답으로 설정한 날짜(out)가 지금 입력한 날짜(input)보다
크거나 작아지면?
*/
if (input[i] < out[i]) {
// 현재 out에 저장되어 있는게 큰 경우 (출력할 배열 변화 필요)
for (j = 0; j < 8; j++) {
out[j] = input[j];
}
break; //바꾸고 각각의 원소 비교해주는 배열 나가기
}
else break;
// out에 저장되어 있는 날짜가 작은 경우: 그냥 비교하는 for문만 나가주면됨.
}
}
}
}
for (i = 0; i < 8; i++) {
printf("%c", out[i]); //out배열(답) 출력해주기
}
return 0;
}
날짜를 한번에 배열에 저장하기 위하여 char로 받았는데.. 음 괜히 그런듯 공식이 어려워 보였지만 구현은 너무 쉬웠고,
오히려 같은 코딩 바이오리듬을 가졌을때 더 빠른 날짜를 출력해내는 부분에서 좀.. 시간을 많이 쏟은듯.
솔직히 전체적으로 쓴 코딩이 너무 더러워서 답은 맞았으나 찝찝..하다
차라리 char형으로 받은 배열을 다시 int형으로 고쳐서 문제를 풀고,
공식에 대입하거나 날짜 비교를 했다면 오히려 더 편했을 수도 있을 것 같다.
흠.. 어쨌든 끝..
'⌨️ Algorithm > C' 카테고리의 다른 글
1/12 [C] 백준 12790번 - Mini Fantasy War (0) | 2022.01.24 |
---|---|
1/10 [C] 백준 5426번 - 비밀 편지 (0) | 2022.01.24 |
1/6 [C] 백준 3076번 - 상근이의 체스판 (0) | 2022.01.06 |
1/6 [C] 백준 1440번 - 타임머신 (0) | 2022.01.06 |
1/3 [C] 백준 21734번 - SMUPC의 등장 (0) | 2022.01.03 |
댓글