Search
Duplicate

단체사진 찍기

문제 설명 및 제한사항

아이디어 및 해결 방법

코드

#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