문제 설명 및 제한사항
아이디어 및 해결 방법
코드
#include <string>
#include <cstdlib>
#include <vector>
#include <algorithm>
using namespace std;
int absval(int x) {
return x < 0 ? -x : x;
}
// 전역 변수를 정의할 경우 함수 내에 초기화 코드를 꼭 작성해주세요.
int solution(int n, vector<string> data) {
int answer = 0;
string names = "ACFJMNRT";
do {
int flag = 1;
for (auto cond: data) {
char a = cond[0];
char b = cond[2];
char op = cond[3];
int v = cond[4] - '0';
int distance = absval(names.find(a) - names.find(b)) - 1;
if (op == '=' && distance != v) {
flag = 0;
break;
} else if (op == '>' && distance <= v) {
flag = 0;
break;
} else if (op == '<' && distance >= v) {
flag = 0;
break;
}
}
if (flag == 1) answer++;
} while (next_permutation(names.begin(), names.end()));
return answer;
}
C++
복사
출처
프로그래머스 코딩테스트 연습 https://school.programmers.co.kr/learn/challenges