본문 바로가기
[ 알고리즘 ]/오답노트

[ BOJ 오답노트 ] 1316 파이썬 : 그룹 단어 체커

by 불주먹고양이 2022. 1. 22.

2022 01 22

 

1. 틀린 기록

 

 

 

2. 원인 분석

- 이번에도 역시나 런타임 에러였다. 그 중에서도 인덱스 오류가 계속 났었는데, 왜 이런 에러가 계속 날까 생각해보니까, 나는 문제를 풀 때 구상을 하고 끝까지 따져보지 않는 습관이 있었더라.

- for 반복문이 while 반복문 보다 자동으로 되는게 많은 만큼 (예를 들면 내가 변수 값을 변화시켜줄 필요가 없는 것), 더 조건을 잘 맞혀주어야 한다. 

 

 

 

3. 해결

- for문으로는 i 값을 변경하는 데에 번거로움을 느껴서, while 문으로 해결했다.

 

- 일단 이웃한 원소의 값이 같다면, 앞쪽 인덱스의 원소를 삭제한다. 모든 배열의 원소를 그렇게 비교한다.

- 이미 이웃한 원소 중 하나를 없앤 상태이므로, 그 후에는 배열에 서로 같은 값이 있다면 그룹 단어라고 볼 수 없다.

- 그러한 단어에 대한 res 변수 값을 False로 만들었다.

- 마지막으로, True인 단어의 개수를 세어 그 값을 출력했다.

 

 

 

4. 배운 점

- 되게 오랫동안 고민했다. 이웃한 원소를 어떻게 효율적으로 판단할지, 떨어져 있으면 어떻게 판별해야 할 지 고민이었다.

- 문자열, 리스트를 가지고 문제를 풀 때에는 꼭 끝까지 경우를 따져보아야 한다는 것을 다시 한번 깨달았다.