백준 풀라고 출제된건 다 끝냄.
풀이 하나하나를 읊기에는 말하기가 더 어려운 영역도 있기에, 좀 뒤에 자세하게 적는 시간을 가져보겠다.
10819 차이를 최대로
이틀 전 토요일에 풀다가 도중에 멈추고, 일요일에 집 갔다오는동안 내내 생각해봤는데 N과 M(5) 문제랑 유사성이 강했다.
어쨌든 숫자를 고르는 선택지를 모두 생각하고 그에 따른 계산 결과를 반영하면 되는거였다.
대체 이 생각을 안하고 뭘 만들려 했던건지 모르겠네 아마 전체적인 설계를 안하고 우선 키보드부터 잡으면 이런 일이 나는 것 같다.
N과 M(5) 문제를 확인하고 이 문제 해결법에 대해서 살짝 핸들을 틀면 바로 해결책이 나올거라 생각했다.
해결한 코드의 내용은 다음과 같다 :
- 숫자의 목록이 주어지면 중복이 되지 않는 선에서 목록의 모든 아이템을 선택해야한다. 즉 1, 2, 3, 4는 1, 3, 2, 4 또는 4, 3, 2, 1 등으로 모두 준비 될 수 있어야만 한다.
- 그럼 이 선택의 순서를 배열에 담아야한다. 근데 배열도 알고보니 순서가 있다. 따라서 배열의 idx는 idx번째, 배열의 내용은 선택한 숫자의 위치를 가리키게 할 수 있다.
이렇게 해서 한 번 계산에 모든 숫자를 선택지에 둘 수 있도록 했다.
그렇게 해서 최대치를 계산해서 제출해서 잘 마무리했다.
사소한 내용때문에 제출이 한 두번 정도 엇나가니 이런걸 잘 살펴봐야겠다.
1914 하노이 탑
https://hyeonistic.tistory.com/18
[PY] 1914 : 하노이 탑
https://www.acmicpc.net/problem/1914얘는 진짜 풀었던거라 금방 하고 넘어갔어야 했는데 막상 중요한 내용이 기억이 안났다.좀 민망할 정도로 극단적으로 요약하면 이런 견적이 나온다.n-1번째까지를 2번
hyeonistic.tistory.com
너무 지치는데
2468 안전 영역
전에 직접 들이박고 시행착오를 겪었던 문제로 기억한다.
이 문제는 얼핏 보면 잠긴 땅이 계산하고 싶다.
하지만 물에 잠긴 땅임을 모두 전제해놓고 그 안에서 안잠긴 땅을 찾는게 더 코드를 작성하기 낫고, 속도도 허용범위 안에서 논다.
긴 코드를 친 것 치곤 단번에 통과해서 의외로 뿌듯했다.
10971 외판원 순회 2
이거 DP로 풀었다는 분이 계셔서 진짜 DP인가 생각해봤지만 순열 구성이 다소 까다로운 브루트 포스 문제라 다행이었다.
순열 만드는 것에 대해 상당히 제약이 많았기 때문에 구현 후 바로 제출을 눌렀지만 이러면 보통 통과를 못한다.
근데 이론이 틀려나갔을리가 없었다 생각했고 결과적으로 내 코드작성에 대한 부족함이 있었다.
중복 없이 순열을 만드는 라이브러리가 내장되어있었고 그걸 쓰니 순식간에 통과하는 코드를 보았다. 요즘은 머리를 안쓰면 머리랑 몸 둘 다 고생하는듯.
어쨌든 최소값을 찾는 문제였으니 배정될 변수에는 꽤 많은 수를 넣어놓고,
그냥 순열을 들이박고 순열에 0이 나오면 빽 시키는 식으로 구현을 했다.
하나 더, for-else문을 처음 배웠는데 for문이 정상 종료 된 경우에만 실행시키는 특수기능이다.
세상에 이런게 있다고? C였으면 도중 중단 발생시 bool로 뭘 하고 저걸 하고 이랬을텐데, 근데 한 번 알고 쓸 일이 또 생길지는 모르겠다.
'TIL' 카테고리의 다른 글
TIL 0319 (0) | 2025.03.19 |
---|---|
TIL 0318, 더더덜 쉬운 문제와 이론 공부 (0) | 2025.03.19 |
TIL 0315, 조금 덜 간단한 문제 풀이 (0) | 2025.03.19 |
TIL 0314, 1주차 문제 풀이 (0) | 2025.03.19 |
TIL 0313, 0주차 미니 프로젝트 #4 (0) | 2025.03.19 |