백준 14226 이모티콘
본문 바로가기
알고리즘 모음집/알고리즘 (Algorithm)

백준 14226 이모티콘

by KyeongMin 2019. 10. 3.
728x90
반응형

https://www.acmicpc.net/problem/14226

 

14226번: 이모티콘

영선이는 매우 기쁘기 때문에, 효빈이에게 스마일 이모티콘을 S개 보내려고 한다. 영선이는 이미 화면에 이모티콘 1개를 입력했다. 이제, 다음과 같은 3가지 연산만 사용해서 이모티콘을 S개 만들어 보려고 한다. 화면에 있는 이모티콘을 모두 복사해서 클립보드에 저장한다. 클립보드에 있는 모든 이모티콘을 화면에 붙여넣기 한다. 화면에 있는 이모티콘 중 하나를 삭제한다. 모든 연산은 1초가 걸린다. 또, 클립보드에 이모티콘을 복사하면 이전에 클립보드에 있던 내용

www.acmicpc.net

 

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include<stdio.h>
#include<iostream>
#include<queue>
using namespace std;
int S;
int chk[1004][1004];
void init() {
    cin >> S;
}
struct Data {
    int display, copy, cnt;
};
void emoticon() {
    queue<Data>q;
    q.push({ 1,0,0 });
    chk[1][0= 1;
    while (!q.empty()) {
        Data c = q.front(); q.pop();
        if (c.display == S) {
            cout << c.cnt;
            return;
        }
        //화면 복사 클립보드로
        if (c.display != 0&& c.display<=1000 && chk[c.display][c.display] == 0) {
            chk[c.display][c.display] = 1;
            q.push({ c.display,c.display,c.cnt + 1 });
        }
        //클립보드에 있는것 화면으로
        if (c.copy != 0 && c.display + c.copy <= 1000 && chk[c.display + c.copy][c.copy] == 0) {
            chk[c.display + c.copy][c.copy] = 1;
            q.push({ c.display + c.copy,c.copy,c.cnt + 1 });
        }
        // 화면에 있는 이모티콘 -1
        if (c.display - 1 != 0 && chk[c.display - 1][c.copy] == 0) {
            chk[c.display - 1][c.copy] = 1;
            q.push({ c.display - 1,c.copy,c.cnt + 1 });
        }
 
        q.push(c);
    }
}
int main(void) {
    init();
    emoticon();
 
}
 
 

이문제의 포인트는 정말 쉽다고 기본적인것 빼먹지 말자 입니다.

그것은 제가 범위를체크를 안해줘서 -1인경우나 배열방이 1000까지 라면 1001 이상인 숫자가 생겨서

런타임이 나서 그문제를 바보같이 실수 했습니다.

여러분들은 그렇지 않을꺼라 생각하지만 이런실수 정말 노노 합니다.

그리고 여기서 포인트라면 현재 화면에 있는 이모티콘이랑 클립보드에 있는 경우가 다를수 있기때문에

 

이차원배열을 이용 해서 이차원배열[현재 화면][클립보드] 이렇게 나눠서 체크를 해줘야 정확한 답이 나옵니다.

그래야 모든 경우를 볼 수있으니까요. 

 

그림이 없어서 딱딱할 수 있는 글 봐주셔서 감사드립니다.

 

여러분들도 파이팅!!!

728x90
반응형

'알고리즘 모음집 > 알고리즘 (Algorithm)' 카테고리의 다른 글

백준 3019 테트리스  (0) 2019.10.04
백준 3568 iSharp  (0) 2019.10.04
백준 13549 숨바꼭질3  (0) 2019.10.03
백준 2065 나룻배  (0) 2019.10.02
백준 2931 가스관  (0) 2019.10.02

댓글