728x90
https://www.acmicpc.net/problem/14681
사분면 고르기는 다음과 같이 코드를 짤 수 있다.
1) Nested if
/*
* 백준 - 단계별 문제풀이 : if문
* 14681번
*
* 사분면 고르
* 점의 좌표를 입력받아 그 점이 어느 사분면에 속하는지 알아내는 프로그램을 작성하시오.
* 단, x좌표와 y좌표는 모두 양수나 음수라고 가정한다.
*
*/
#include <iostream>
int solution(int x, int y) {
if (x > 0) { // 1,4
if (y > 0) return 1;
else return 4;
} else {
if (y > 0) return 2;
else return 3;
}
}
int main() {
// x좌표, y좌표 입력받기
int x, y;
std::cin >> x >> y;
std::cout << solution(x, y) << std::endl;
}
2) &&
/*
* 백준 - 단계별 문제풀이 : if문
* 14681번
*
* 사분면 고르
* 점의 좌표를 입력받아 그 점이 어느 사분면에 속하는지 알아내는 프로그램을 작성하시오.
* 단, x좌표와 y좌표는 모두 양수나 음수라고 가정한다.
*
*/
#include <iostream>
int solution(int x, int y) {
if(x>0&&y>0)
return 1;
else if(x<0&&y>0)
return 2;
else if(x<0&&y<0)
return 3;
else if(x>0&&y<0)
return 4;
}
int main() {
// x좌표, y좌표 입력받기
int x, y;
std::cin >> x >> y;
std::cout << solution(x, y) << std::endl;
}
갑자기 궁금해졌다.
&&로 조건을 연결하는 것과, if문을 중첩해서 사용하는 것중에 무엇이 더 효율적일까?
which is faster && or nested if?
→ 궁금했는데 딱히 명확하게 답해진 곳은 없고,
둘의 차이점은 chain으로 묶인 표현이, if문으로 비교 한 후 추가적인 연산을 수행한다는 것이다.
하지만 둘의 성능적 차이는 거의 없으며,
코드의 가독성이 더 중요하게 여겨지므로 &&를 사용하라는 의견이 많았다
https://stackoverflow.com/questions/36731898/why-nested-if-statement-is-faster-than-using-operator
728x90
'Algorithm > BaekJoon' 카테고리의 다른 글
[1193] 분수찾기 (0) | 2021.08.28 |
---|---|
[2292] 벌집 (0) | 2021.08.28 |
[15552] 빠른 A+B - ios_base::sync_with_stdio(false)와 cin.tie(null) (0) | 2021.08.27 |
[2741]N 찍기 - "\n" vs endl (0) | 2021.08.27 |
[10818] 최소, 최대 (0) | 2021.04.27 |