본문 바로가기

알고리즘 · 코딩

[SWEA 24001] 로봇 언어

한 칸씩 이동할 때마다 지금까지의 물음표들이 모두 L 혹은 R이라 가정하고 합계의 절대값을 이전 최대 거리와 비교한다.

 

C++ 풀이

#include <iostream>
using namespace std;

int main(int argc, char** argv) {
	int T, sum, maxSum, qCount;
	string s;
	cin >> T;
	for (int i = 0; i < T; i++) {
		cin >> s;
		sum = 0, maxSum = 0, qCount = 0;
		for (int c = 0; c < s.length(); c++) {
			if (s[c] == 'L') {
				sum--;
			}
			else if (s[c] == 'R') {
				sum++;
			}
			else if (s[c] == '?') {
				qCount++;
			}
			maxSum = max(maxSum, max(abs(sum - qCount), abs(sum + qCount)));
		}
		cout << maxSum << endl;
	}
	return 0;
}

 

 

문제 링크

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AZVqPrHaAy_HBIOy

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

 

반응형

'알고리즘 · 코딩' 카테고리의 다른 글

[HackerRank] Exceptional Server  (0) 2022.03.08
[HackerRank] Inherited Code  (0) 2022.03.08
[LeetCode] Two Sum  (0) 2022.02.25
[SWEA 1954] 달팽이 숫자  (0) 2022.02.13
[프로그래머스] n^2 배열 자르기  (0) 2021.12.23