스마트 물류 문제 링크 

 

리뷰 

 

라인 길이가 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

+ Recent posts