리뷰
라인 길이가 20, 현재 로봇의 좌표가 i = 1이고, 잡을 수 있는 범위가 k = 2 라면,
검사해야할 좌표는 0, 2, 3 이다.
유효범위인지 확인해야 한다. => 확인한 좌표가 0이상, 20 미만인지.
유효범위 인데, 'H' 물건을 잡았다면, 다시 잡을 수 없도록 값을 바꿔놔야 한다. line[j] = 'X'
맞았습니다 코드
#include <bits/stdc++.h>
using namespace std;
int n, k, answer;
string line;
int main(void) {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> n >> k >> line;
for(int i = 0; i < n; i++) {
if('P' == line[i]){ // 로봇이라면, 양쪽을 확인
for(int j = i-k; j <= i+k; j++){ // i 기준 양쪽을 본다.
if(i == j || j < 0 || j >= n) continue;// 유효인덱스 검사
if(line[j] == 'H') {
line[j] = 'X'; answer++; break; // 선택 표시하고 개수 증가
}
}
}
}
cout << answer;
return 0;
}
제출기록
728x90
'알고리즘 > Softeer' 카테고리의 다른 글
[소프티어/Softeer] 우물 안 개구리 c++ (0) | 2022.05.20 |
---|---|
[소프티어/Softeer] H-클린알파 c++ (0) | 2022.05.20 |
[소프티어/Softeer] 징검다리 c++ (0) | 2022.05.19 |
[소프티어/Softeer] 성적평균 c++ (0) | 2022.05.19 |
[소프티어/Softeer] 장애물 인식 프로그램 c++ (0) | 2022.05.18 |