본문 바로가기

# 공부30

[백준::5430 python3] AC 최근 계속 하루에 하나씩 문제를 풀고있는데, 그 중 나름 짜증났거나 재밌었던 문제들을 가져오는 중이다. 이 문제는 짜증의 유형에 속하는데, 문제 자체는 간단한데 난해한 테스트케이스 뭐 좋게 말해야 난해한거고 사실 지랄맞은것이다. 그래서 이 문제를 풀이한사람들은 한번씩 욕한 흔적이 있다. 더보기 잡소리 이 문제는 장단점이 명확하다. 우선 장점의 경우, 겉보기에 간단해 보이는 문제지만 간과할 수 있는 실수와 경우가 생각보다 더 있고, 그걸 탐구하는 방법을 스스로 학습할 기회가 됐다. 그리고 단점은 문제 자체에 있는게 아니라, 사람에 있는거 같은데.. 굳이 출력까지 저렇게 걸러야했나 싶다. 문제를 만들어본 입장에서 테스트케이스 20개로 정답 걸러내는 프로세스만드는게 생각보다 쉽진 않지만 그렇다고 그렇게 어렵지.. 2021. 12. 21.
[백준::11652 Py] 카드 역대급 혈압오르는 문제였다. 애초에 로직이 복잡하면 모를까, 로직도 간단한데 도저히 어디서 걸리는줄 계산이 안됐다. 질문검색으로 가서 그곳에 있는 모든 글을 읽고 반례를 전부 가져와서 입력해봤다. 일부러 공백에 유니코드값이 몰래 붙을까봐 손으로 하나하나 입력했다. 검증도 몇번이나 거쳤는데 계속 틀렸다고 나와서 코드를 엎어버렸다. 하지만 틀린다면, 가장 틀릴법한곳이 존재했고, 그곳을 날려버리고 맨바닥에서부터 다시 시작하니 코드가 손쉽게 통과됐다. 솔직히 아직도 잘 모르겠다. 기존의 코드가 함수를 두개를 써서 약간 이리저리 얽히긴했는데, 흠.. 어쨋든 이 문제는 매우 간단하다. 일단 조건을 보면 1. 테스트케이스 N은 최대값이 10만이다. 2. 입력 값 M은 -2^62 ~ 2^62까지 범위이다. (Big N.. 2021. 12. 11.
[백준::1735 Py] 분수합 배가고프니 간결하게 설명하겠다. 분수합을 다 알겠지만 말로 풀고 그걸 코드로 적으면 된다. 1. 분모의 크기를 맞춘다. 2. 분자도 분모따라서 * n을 해준다. 3. 분자끼리 더한다. 4. 약분해준다. 일단 내 경우는 두개의 리스트를 두어서 0번지엔 분자 / 1번지엔 분모가 들어가게 했고 denominator(분모)를 몇으로 해야하냐인데 최소공배수를 구해주면 간단하다. 보통 우린 분모끼리 곱하고 분자도 똑같이 해주고 약분을 하는데 뭐 그렇게 해도 사실 상관은 없다. 근데 난 있는 환경을 최대한 활용하기 위해 math를 불러와서 lcm(최소공배수함수)를 사용했다. 아무튼 예제처럼 2 7 3 5 라고 하자 분모를 맞춰주면 35가 되고, 2*5와 3*7이 나온다. 색칠 되어있는 수를 구하려면 서로 교차해서 넣.. 2021. 12. 9.
[백준::1475 Py] 방번호 못풀었었던 문제 중 두번째 문제는 간단히 말해서 0~9가 적힌 스티커가 있고, 어떠한 방 번호 N이 들어왔을때 총 몇 세트가 필요하느냐?라는 것이다. 0~9의 스티커는 한 세트이고, 단 6와 9는 뒤집어서 쓸 수있다. 즉 6이 없을때 9를 6으로 뒤집어 사용이 가능하다는것. 쉬울줄 알았는데 의외로 좀 까다로웠다. 우선 str형으로 받아주고 해당 숫자의 크기를 재서 몇자리인지 나눴고 세트의 수를 count로 세주려다가 코드가 불필요하게 길어져서 연산은 더 많아지지만 내가 편한방향으로 코딩했다. 그게 바로, 2차원 배열을 하나 만들어놓고 세트가 필요할경우 2차원 배열 내부에 1차원 배열을 append하는 식으로 진행했고, 269945처럼 2세트로도 가능한 결과를 잘못계산해서 3세트가 나오는 등을 고려해야한다.. 2021. 12. 9.