[백준 1343] 폴리오미노

2022. 3. 17. 23:08·스터디/알고리즘
#include <iostream>
#include <string>
using namespace std;

int main(){
    int count = 0;
    string str;

    cin>>str;

    for(int i=0; i<str.length(); i++){
        count++;
        if(str[i]=='.'){
            count--;
            if(count == 2){
                for(int j=1; j<=2; j++)
                    str[i-j]='B';
                count = 0;
            } 
        }
        else{
           if(count == 4){
               for(int j=0; j<4; j++)
                    str[i-j]='A';
                count =0;
           }
           if(i==str.length()-1){
               if(count == 2){
                   for(int j=1; j<=2; j++)
                        str[i-j]='B'; 
                    count=0;
               }
           }
        } 
    }
    if(str.find('X') != std::string::npos)
        cout << -1 << endl;
    else
        cout << str << endl;    
}

 

 

  • 입력받은 문자열 길이만큼 count 증가
    • 만약 입력받은 문자열 중 .(온점)이 있다면
      • count 감소 (한칸 앞으로 이동)
        • 이때 만약 count (한 칸 감소한 count)가 2라면 X가 2개 있음을 의미
          • B를 채움
          • count 0으로 리셋
    • 만약 입력 받은 문자열 중 .(온점)이 없고
      • count가 4라면 X가 4개 있음을 의미
        • A를 채움
        • count 0으로 리셋
      • 문자열이 끝나고 (입력 받은 문자열 중 온점 없이)
        • count가 2라면 X가 2개 있음을 의미
          • B를 채움
          • count 0으로 리셋
  • 위 과정이 끝나고도 X가 남아 있다면 (이는 문자열이 홀수인 상태) -1 출력
  • X가 남아 있지 않다면 (A 또는 B로 재배치한) 문자열 출력

 

 

 

 

참고: std::string::npos 

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=jaejun0201&logNo=50146312891

 

find()와 npos

string 클래스에 find()라는 메서드가 있다. #include <string> #include <iostream> using na...

blog.naver.com

 

 

'스터디 > 알고리즘' 카테고리의 다른 글

[백준 2979] 트럭 주차  (1) 2022.05.10
[알고리즘 강의] 이론편 (1)  (0) 2022.04.29
[백준 10866] 덱  (0) 2022.02.11
[백준 2231] 분해합  (0) 2022.02.11
[백준 19532] 수학은 비대면강의입니다  (0) 2022.02.11
'스터디/알고리즘' 카테고리의 다른 글
  • [백준 2979] 트럭 주차
  • [알고리즘 강의] 이론편 (1)
  • [백준 10866] 덱
  • [백준 2231] 분해합
덩이
덩이
찍먹 대마왕
  • 덩이
    Devlog
    덩이
  • 전체
    오늘
    어제
    • 분류 전체보기 (118)
      • 강의 (68)
        • SAP ERP (11)
        • KOSTA (32)
        • Inflearn (0)
        • etc (25)
      • 회사 (0)
        • 스터디 (3)
        • 전자정부 (0)
      • 학교 (15)
      • 스터디 (30)
        • 알고리즘 (25)
        • 프로젝트 (3)
        • 에러 (2)
        • 자격증 (0)
      • 기타 (2)
        • 자료 (1)
        • 회고록 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GitHub
    • Naver
  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
덩이
[백준 1343] 폴리오미노
상단으로

티스토리툴바