킹솔이
[프로그래머스/C++] 서머코딩/윈터코딩(~2018) 방문길이 본문
https://programmers.co.kr/learn/courses/30/lessons/49994
코딩테스트 연습 - 방문 길이 | 프로그래머스
programmers.co.kr
#include<iostream>
#include <string>
#include<vector>
using namespace std;
int solution(string dirs) {
int answer = 0;
int curx = 0;
int cury = 0;
vector<pair<int, int>> vec;
vec.push_back(make_pair(0, 0));
for (int i = 0; i < dirs.size(); i++) {
int gox = 0;
int goy = 0;
if (dirs[i] == 'U') goy--;
else if (dirs[i] == 'D') goy++;
else if (dirs[i] == 'R') gox++;
else if (dirs[i] == 'L') gox--;
if (curx + gox <= 5 && curx + gox >= -5 && cury + goy <= 5 && cury + goy >= -5) {
curx += gox;
cury += goy;
vec.push_back(make_pair(curx, cury));
int j;
int count = 0;
for (j = 0; j < vec.size() - 1; j++) {
if ((vec[j].first == curx - gox && vec[j].second == cury - goy&& vec[j+1].first == curx && vec[j+1].second == cury)||
(vec[j+1].first == curx - gox && vec[j+1].second == cury - goy && vec[j].first == curx && vec[j].second == cury)) {
count++;
}
}
if (count==1) answer++;
}
}
return answer;
}
int main() {
string dirs="ULURRDLLU";
cout << solution(dirs);
return 0;
}
'Algorithm' 카테고리의 다른 글
[백준/Python] 2891 카약과 강풍 (1) | 2021.01.06 |
---|---|
[프로그래머스/C++] 서머코딩/윈터코딩(~2018) 쿠키 구입 (0) | 2020.03.09 |
[백준/C++] 14503 로봇 청소기 (0) | 2020.02.04 |
[백준/C++] 17487 타자 연습 (0) | 2020.01.28 |
[백준/C++] 1268 임시반장 정하기 (0) | 2020.01.22 |