오늘도 알고리즘이다
예전에 풀었던 문자열 폭발 풀어보았다 백준 9935다
리스트 슬라이싱과 스택 사용해서 풀었다
처음에는 스캔해서 삭제하려 했는데 시간복잡도 N^2라 포기하고
스택 만들어 문자열 순서대로 넣으며 그 위 몇개만 읽어서 폭발 단어랑 일치하는지 확인하는 방식으로 해결했다
4달전보다 속도가 절반 줄었다
그땐 del말고 pop여러번으로 해서 더 걸린듯?
리스트[시작점:끝점:간격]
리스트 슬라이싱도 다시 정리했다
문자열 몇개만 꺼내서 쓸려고 result[-1 : -3] 이런식으로 했다가 작동안해서 result[-3 :] 이런식으로 처리했는데 첫번째 처럼 할거면 result[-1 : -3: -1] 이런식으로 간격을 음수에 줘야 한다는 등 말이다
무조건 왼쪽에서 오른쪽으로 슬라이싱 하니 이를 해결하기 위해 간격에 음수 주기
근데 이리하면 다시 뒤집거나 해야해서 걍 result[-3 :] 같은게 나은거 같다
그 다음에 푼건 분해합 문제인데 처음에 자릿수 별로 for문 같은 거 하려다가 걍 브루트 포스로 풀었다
자릿수별 for문 돌리기에는 자릿수가 너무많음;;
중요하게 기억 해야했던건 최소값이기에 찾자마자 break로 탈출해야했다는거다
아니면 끝까지 돌아서 더 큰값 나올수도 있다
세 번째로 푼건 블랙잭 문제인데 말이 블랙잭이지 걍 주어진 숫자 중 3개로 정해진 값 비슷하게 만드는거다 (단, 그 값보단 작아야함)
브루트포스로 금방 풂 ㅇㅇ;;
| 문제 | 풀이키워드 |
|---|---|
| 문자열 폭발 | 스택을 통한 탐색 |
| 분해합 | 브루트포스 |
| 블랙잭 | 브루트포스 |