Lv 0. 점의 위치 구하기

https://school.programmers.co.kr/learn/courses/30/lessons/120841

 

#include <string>
#include <vector>

using namespace std;

int solution(vector<int> dot) {
    int answer = 0;
    int x=dot[0];
    int y=dot[1];
    if(x>0 && y>0) return 1;
    else if(x<0 && y>0) return 2;
    else if(x<0 && y<0) return 3;
    else return 4;
}

나는 위와같이 풀었는데, 

다른사람의 풀이를 보니까, 삼항연산자를 엮어서 푼 풀이가 있는데 재미있어서 첨부해본다. 

#include <string>
#include <vector>

using namespace std;

int solution(vector<int> dot) {
    return dot[0] > 0 ? (dot[1] > 0 ? 1 : 4) : (dot[1] < 0 ? 3 : 2);
}

 

삼항 연산자 내부에 삼항연산자 두개를 엮어서 경우의 수들을 나타낼 수 있게 한 풀이인데, 바로 보자마자 이해가 되는건 아니겠지만 그래도 재미있게 해결해서 다음에 이런식의 풀이도 한번 생각해볼만 할것 같다. 

 

  Comments,     Trackbacks