본문 바로가기

[ 알고리즘 ]/오답노트25

[ BOJ 오답노트 ] 2775 파이썬 : 부녀회장이 될테야 2022 01 25 1. 틀린 기록 2. 원인 분석 - 이야 새로운 오답 결과!! 시간 초과다!!! 하하하하 - 이것이 바로 맞왜틀 (맞는데 왜 틀려)인가? - 내가 시간 초과 낸 코드를 보면 다음과 같다. - 층수와 호수의 최댓값이 14임에도 for문에 재귀함수 범벅을 해서... 시간 제한 1초를 넘어설 수밖에 없는 아주 드러운 코드였다!! - 아이디어는 그대로하고 차라리 이중 for문으로 구현해야겠다고 생각했다. 그래봤자 14 X 14 = 196 번의 연산이므로.. 3. 해결 - 다이나믹 프로그래밍을 생각했다. 그 중에서도 바텀업 방식으로 구현하고 이차원 리스트를 만들어서 메모이제이션을 구현하도록 했다. - 어차피 1층 이상의 가구는 그 전 층의 사람 수들을 모두 계산해야 됐어서 바텀업 방식을 생각했.. 2022. 1. 25.
[ BOJ 오답노트 ] 2292 파이썬 : 벌집 2022 01 25 1. 틀린 기록 2. 원인 분석 - 일단 규칙은 알겠는데 어떻게 구현해야 할 지가 고민이었다. - 이것 저것 써보다가 누적합으로 하나씩 증가하면서 벌집 개수를 구해야겠다고 생각했다. - 가장 고민했던 것이 입력될 수 있는 가장 큰 값이 1,000,000,000인데 경계를 다 배열 안에 넣어두어야 하나...? 싶었다. - 아~주 멍청한 생각이었다...ㅎ 그냥 while문으로 기준 값을 하나씩 늘리면 되는 것이었는데... 헤헤 3. 해결 - count 변수는 거쳐가야 하는 총 벌집의 개수이다. - i의 값을 -1로 초기화 한 이유는 while 문이 시작되자 마자 +1 해줘야 하기 때문이다. - middleSum은 누적합이다. - 만약에 입력된 수가 누적합과 다음번 숫자의 합보다 작다면 누.. 2022. 1. 25.
[ BOJ 오답노트 ] 1316 파이썬 : 그룹 단어 체커 2022 01 22 1. 틀린 기록 2. 원인 분석 - 이번에도 역시나 런타임 에러였다. 그 중에서도 인덱스 오류가 계속 났었는데, 왜 이런 에러가 계속 날까 생각해보니까, 나는 문제를 풀 때 구상을 하고 끝까지 따져보지 않는 습관이 있었더라. - for 반복문이 while 반복문 보다 자동으로 되는게 많은 만큼 (예를 들면 내가 변수 값을 변화시켜줄 필요가 없는 것), 더 조건을 잘 맞혀주어야 한다. 3. 해결 - for문으로는 i 값을 변경하는 데에 번거로움을 느껴서, while 문으로 해결했다. - 일단 이웃한 원소의 값이 같다면, 앞쪽 인덱스의 원소를 삭제한다. 모든 배열의 원소를 그렇게 비교한다. - 이미 이웃한 원소 중 하나를 없앤 상태이므로, 그 후에는 배열에 서로 같은 값이 있다면 그룹 단.. 2022. 1. 22.
[ BOJ 오답노트 ] 2941 파이썬 : 크로아티아 알파벳 2022 01 20 1. 틀린 기록 - 아이디어가 생각이 안나서 20분 정도 고민했음. 2. 원인 분석 - 크로아티아 문자에 해당하는 알파벳과 기호의 길이가 2인 것도 있고, 3인 것도 있고, 그냥 알파벳 자체가 크로아티아 문자에 해당하는 경우가 있다 보니까 문자열을 어떻게 자르고 바꿔야할 지 감이 안왔다. 3. 해결 - replace 함수를 사용하면 되었다. - 길이를 따로따로 떼어서 생각할 필요 없이 for문으로 크로아티아 배열을 돌려서 replace 해주면 되는 것이었음. 4. 배운 점 - 기준의 길이가 다양할 때에는 잘라서 생각하지 말고 통으로 볼 생각을 해야겠다. - replace 함수의 위력...b 2022. 1. 20.