티스토리 뷰

문제 출처:www.acmicpc.net/problem/14467

 

14467번: 소가 길을 건너간 이유 1

3번 소는 위치 1, 0, 1에서 관찰되었으므로 길을 최소 두 번 건넜음을 확인할 수 있다. 4번 소도 길을 한 번 건넜으며, 나머지 소는 길을 건넌 기록이 확인되지 않는다.

www.acmicpc.net

코딩을 하기 앞서 우선 의사 코드를 작성하였다.

 

 

확실히 의사코드를 작성하고 코딩을 시작하니 틀리는 횟수도 줄어들고 생각하는 법도 배우는 것 같다.

 

문제 해결의 핵심은 방문 배열이라고 생각한다. (3, 0) 이후 (3,1) 나오면 당연히 길을 건넌 것이다. 하지만 코드로 건넌 여부를 확인하기 위해 방문 배열을 사용하여 만약 해당 소, 즉 (3,0)에서 3에 해당하는 소의 방문 배열 값이 false이면 해당 소는 지금 위치가 처음이다라는 것을 표시하는 것이다. 바로 true로 설정해두면, 다음에 같은 소가 나오더라도 true이므로 이전에 해당 소에 대한 위치 정보가 나왔구나를 확인할 수 있다.

 

만약 소의 방문 배열 상태가 true이면 또다시 두가지를 확인해야 한다.

이전의 값이랑 다른지!!(0 인지 1인지를 확인). 기존에 0이었는데 지금 입력값이 1이면 map 배열의 두 번째 칼럼 값을 ++해준다. 그리고 만약 그 값이 1이면 길을 건넌 것으로 간주라고 다시 0으로 리셋하고 체크하면 된다.

 

 

 

 

'알고리즘' 카테고리의 다른 글

백준 - 안전영역  (0) 2021.04.13
백준 - 늑대와 양  (0) 2021.04.09
백준 - 달팽이  (0) 2021.04.05
백준 - 암호 만들기  (0) 2021.03.26
백준 - 외판원 순회2  (0) 2021.03.14
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
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
글 보관함