코드포스(CodeForce)

Educational Codeforces Round 32 - B. Buggy Robot

cepiloth 2018. 8. 17. 18:16
반응형


1. 문제


2. 알고리즘

키워드 - 구현


* 문제 접근


LDUR 명령으로 로봇에 위치가 갱신 된다.

시작위치는 0,0 에서 시작 하고 로봇이 다시 0,0 돌아오는 최적 해를 구하자


left, right, up, down 모든 움직임 변수를 적산 하고 


총 이동한 횟수에서 

좌우 이동 적산 절대 값 = right - left 

상하 이동 적산 절대 값 = up - down

이동 적산 절대 값 = [좌우 이동 적산 절대 값] + [상하 이동 적산 절대 값]

[총 이동한 횟수] - [이동 적산 절대 값] = 해


3. 코드


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include<stdio.h>  
#include<string.h>  
#include<stdlib.h>  
#include<queue>  
#include<stack>  
#include<math.h>  
#include<vector>  
#include<map>  
#include<set>  
#include<stdlib.h>  
#include<cmath>  
#include<string>  
#include<algorithm>  
#include<iostream>  
using namespace std;
 
int n, ans, up, down, lft, rght;
char c;
int main()
{
    cin >> n;
    for (int i = 0; i<n; i++) {
        cin >> c;
        if (c == 'R')rght++;
        if (c == 'U')up++;
        if (c == 'L')lft++;
        if (c == 'D')down++;
    }
    int ans = abs(lft - rght) + abs(up - down);
    cout << n - ans;
    return 0;
}
cs

반응형