티스토리 뷰
42ALGO 디스코드에 질문이 올라왔길래 생각없이 나도 풀어보았다.
처음엔 단순히 ++로 풀었더니 역시나 시간초과였다.
이진 탐색으로 풀라는데 왠지 소금물 문제 같다고 생각하다보니 진짜 소금물 문제였다.
그래서 룰루랄라 수학으로 풀었는데 5번이나 틀렸다.
1차/2차 시도
#include <stdio.h>
int main(void) {
float x = 0;
float y = 0;
int f_z;
int count = 0;
scanf("%f %f", &x, &y);
if (!(x > 0 && x <= 1000000000) || !(y >= 0 && y <= x))
{
return (0);
}
f_z = (y / x) * 100;
if (f_z >= 99)
{
printf("-1");
return 0;
}
f_z++;
count = (f_z * x - 100 * y) / (100 - f_z) + 1;
printf("%d", count);
return 0;
}
여러모로 난리지만 마지막 count를 올림해줘야 된다는 생각에 +1 한 것이 가장 큰 문제라고 생각해서 고쳤다.
3차 시도
#include <stdio.h>
#include <math.h>
int main(void) {
float x = 0;
float y = 0;
int f_z;
long long temp;
int count = 0;
scanf("%f %f", &x, &y);
if (!(x > 0 && x <= 1000000000) || !(y >= 0 && y <= x))
{
return (0);
}
f_z = (y / x) * 100;
if (f_z >= 99)
{
printf("-1");
return 0;
}
f_z++;
temp = f_z * (int)x - 100 * (int)y;
if (temp % (100 - f_z) > 0)
{
count = temp / (100 - f_z) + 1;
}
else
{
count = temp / (100 - f_z);
}
printf("%d", count);
return 0;
}
역시 난리지만 일단 count 반올림을 고쳤고, x에 1,000,000,000 y에 980,000,000을 넣었을 때 결과값이 1,000,000,000이 나오지 않고 999,997,440으로 나오길래 무엇이 문제일까 고민하다가 float 형에서 오류가 난다는 걸 아까 부스트 코스 강의에서 들어서 생각 났었다. 그래서 temp = f_z * (int)x - 100 * (int)y; 이렇게 (int)를 붙여주니 결과가 잘 나왔다. 그런데 이때부터 결과는 계속 잘 나오는데 틀렸다고 나왔다. (ㅠㅠ)
6차 시도
#include <stdio.h>
#include <math.h>
int main(void) {
long int x = 0;
long int y = 0;
long int z;
long int temp;
long int count = 0;
scanf("%ld %ld", &x, &y);
z = (100 * y) / x;
if (z >= 99)
{
printf("-1");
return 0;
}
z++;
temp = z * x - 100 * y;
if (temp % (100 - z) > 0)
{
count = temp / (100 - z) + 1;
}
else
{
count = temp / (100 - z);
}
printf("%ld", count);
return 0;
}
도합 7차시도만에 맞았다. int, float, long long들이 난무하는 상태에서 계산을 해주고 형을 바꿔주고 하다보니 틀린것 같다. long int로 통일해주니 편-안
그렇게 약 1시간 반만에 풀었다.
그런데...
Lv.2 문제였다...
Lv.2 문제를 푼건 참 뿌듯하지만 이것 때문에 굉장히 힘들게! 주변 사람 괴롭혔는데..하아ㅏㅏㅏ
그래도 코딩 실력 늘었으니 됐지!
너무 어이없어서 어디에 말하고 싶은데 말할 곳이 없어서 블로그를 열었다.
창피한 코드지만 이렇게 실력을 키워나가는 거지!?!
코린이의 성장일기 계속 쓸 수 있기를^^*
'코린이의 성장기' 카테고리의 다른 글
2020.08.06 printf 뿌셔뿌셔 (0) | 2020.08.06 |
---|---|
2020.08.03 [부스트 코딩 뉴비 챌린지] 3주차 끝, 4주차 시작 (0) | 2020.08.03 |
2020.07.24 백준 2751번 수 정렬하기 2 (0) | 2020.07.24 |
2020.07.23 libft Part2 해치웠나...? (0) | 2020.07.24 |
2020.07.22 42 Tech Seminar (0) | 2020.07.22 |
- Total
- Today
- Yesterday
- ft_printf
- 코드포스
- 멋쟁이사자처럼9기
- 42seoul
- 42cursus
- 코린이의 성장일기
- 코딩뉴비챌린지
- ft_server
- codeforces
- ES6
- 42서울
- BOJ
- 부스트코딩뉴비챌린지
- git
- 멋쟁이사자처럼
- CS50
- 드림코딩
- C++
- 백준
- github
- 알고리즘
- 부스트코스
- Python
- 자바스크립트
- 컴퓨터과학
- printf
- 드림코딩by엘리
- 코린이
- django
- 네이버커넥트재단
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |