문제 어떻게 풀지 고민하다가 딱 느낌이 왔다. 음수면 반대로 가니 더하기가 되고 양수면 느리게 가니 뺄셈이 되는 식..
#include <iostream>
int main(){
int a, b;
scanf("%d %d", &a, &b);
printf("%d", 2-a/b*2);
return 0;
}
음 그런데 틀렸다; 다시 보니 a가 4고 b가 1이면 4배나 빨라지는데 그러면 값이 커져 음수가 된다. 내 생각에는 절댓값이 1보다 큰 경우 작은 경우 나눠서 생각해야 할 것 같다. 그리고 음수.. 음수면 어떻게 되는지 감이 잘 안 잡힌다. 아무튼 이 생각은 다음으로...
다시 시도한 고장난 시계 문제
문제 풀 때 좌뇌 우뇌 쪼개서 좌뇌는 정상시계 돌리고 우뇌는 고장난 시계 돌리고 싶었다 진심..
너무 헷갈려서 12시간 기준으로 몇 번 만나는지 계산한 다음 *2를 하면 될 것 같았다. 그래서 위처럼 규칙을 세워서 아래처럼 코딩했음
#include <iostream>
using namespace std;
int main() {
int a, b;
scanf("%d %d", &a, &b);
if(a > 0){
printf("%d", 2*(a/b));
} else {
printf("%d", 2*(-1*a/b + 1));
}
return 0;
}
또 틀렸다ㅋㅋ
#include <iostream>
using namespace std;
int main() {
int a, b;
scanf("%d %d", &a, &b);
int tmp = a/b - 1;
if(tmp > 0){
printf("%d", 2*tmp);
} else {
printf("%d", -2*tmp);
}
return 0;
}
dma..
왜 틀렸지
음..
위에껀 약간 두루뭉실하게 생각 한 거라 다시 정리해봤다
음..
엄.. 음.. 아 이거 맞는 거 같은데
그래서 그냥 숫자 아무꺼나 넣어보다가 이상한 부분을 찾았다. 7하고 2를 넣어봤는데 이게 5가 나와야 하는데 내 코드로는 4가 나왔다. 알고보니 몫으로 구하면서 2.5가 2가 됐고 여기에 2를 곱하면 4가 된다. 원래라면 2.5*2라 5가 되어야 함.. ㅋㅋㅠㅠ ㅋㅋ 소숫점.. ㅎㅎ...
암튼,, 이런 경우는 분자, 분모를 따로 계산한 다음에 나눠줘야 정확한 값이 나온다고 한다. 그래서 a/b - 1을 (a-b) / b 이렇게 계산했다.
#include <iostream>
using namespace std;
int main() {
int a, b;
scanf("%d %d", &a, &b);
if(a-b > 0){
printf("%d", 2*(a-b)/b);
} else {
printf("%d", -2*(a-b)/b);
}
return 0;
}
ㅋㅋㅋㅋㅋ
어려운 PS의 세계 ,,, 하지만 아직 두 달 밖에 안 된 늅이라 어쩔 수 없다.
'백준' 카테고리의 다른 글
10816 숫자 카드 2 (0) | 2019.11.25 |
---|---|
10815 숫자 카드 (0) | 2019.11.25 |
1252 이진수 덧셈 (0) | 2019.11.23 |
1790 수 이어 쓰기2 (미완) (0) | 2019.11.20 |
1059 수2 (0) | 2019.11.17 |