title: "[프로그래머스] 단체사진 찍기 Python 파이썬 해설 (Level 2) - 이도훈"
cleanUrl: "programmers/1835"
description: "프로그래머스 Level 2 문제 [단체사진 찍기]의 풀이를 정리합니다."
#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;
}
프로그래머스 코딩테스트 연습 https://school.programmers.co.kr/learn/challenges