반응형
알고리즘 정리
1. 숫자 입력 받기
int X;
scanf("%d", &X);
2. 변수 설정
int stage = 1;
int count = 1;
3. 목표한 번지까지 찾아가기 위해서 stage랑 count값을 설정함. 원하는 stage를 찾을 때까지 count값을 늘려서 찾음
stage는 이런식으로 구성했다.
가로로 정리하면 이런식이다..
count는 stage의 첫번째마다 갱신한다고 치면 이전 count에서 stage의 값을 더하여 갱신하면 된다.
코드로 구현하면 아래와 같이 된다.
while (count < X) {
stage++;
count += stage;
}
count -= stage;
4. 분모랑 분자에 들어갈 값 계산
예시로 몇개 해보고 일반화 해보았다. stage가 홀수일 때랑 짝수일 때가 분모 분자의 증감이 달라서 예시로 stage가 홀수인것과 짝수인것을 나눠서 case 두개를 해보았다.
위에 내용을 일반화 하면 다음과 같다.
정리한걸 코드로 구현해보았다.
int boonmo, boonja;
if (stage % 2 == 0) {
boonja = X - count;
boonmo = stage + 1 - boonja;
}
else {
boonmo = X - count;
boonja = stage + 1 - boonmo;
}
5. 결과 출력
printf("%d/%d", boonja, boonmo);
답안
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
int X;
scanf("%d", &X);
int stage = 1;
int count = 1;
while (count < X) {
stage++;
count += stage;
}
count -= stage;
int boonmo, boonja;
if (stage % 2 == 0) {
boonja = X - count;
boonmo = stage + 1 - boonja;
}
else {
boonmo = X - count;
boonja = stage + 1 - boonmo;
}
printf("%d/%d", boonja, boonmo);
return 0;
}
문제 잘못읽고 지그재그인 줄 몰라서 한참 걸림 쩝
반응형
'코딩해요 > C' 카테고리의 다른 글
[프로그래머스/C] 1126 코딩테스트 (0) | 2024.11.26 |
---|---|
[백준/C언어] 2475번: 검증수 (0) | 2024.07.09 |
[백준/C언어] 2292번: 벌집 (0) | 2024.07.09 |
[백준/C언어] 11005번: 진법 변환2 (0) | 2024.07.09 |
[백준/C언어] 1316번: 그룹 단어 체커 (0) | 2024.07.08 |