본문 바로가기

# 공부/# 그 외 흥미로운 문제들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.
#[백준::1212] 8진수 2진수 오늘은 러시아어 공부를 하다가 머리 식힐겸 풀다 딴거하러가거나 능력이 안되어 못풀거나 뭐.. 그런문제를 풀어보려고 한다. 우선 #[백준::1212 Py] 8진수 2진수 약 한달전 c++로 풀던게 있는데, 이때 내 기억으로 풀다가 뭔일이 있어서 그만둔걸로 기억한다. 아무튼 최근 python을 가르치며 좀 더 공부를 해야겠단 생각으로 python으로 풀어보는데, 역시 이런 문제들은 기가막히게 간단하게 풀린다. 설명도 매우 간결하다. 일단 파이썬 내부함수엔 2,8,10,16진수를 변환시켜주는 애가 있다.2진수는 bin, 8진수는 oct, 10진수는 int, 16진수는 hex우선 python터미널을 열어서 테스트를 해봤다. 일단 난 oct나 bin을 어떤 자료형으로 표현하는가에 대해 딱히 생각해본적이 없었다. .. 2021. 12. 9.
[백준::1021번::Python] 회전하는 큐 의외로 굉장히 쉬운 문제다. 간단하게 말해서 큐의 시작과 끝을 이어붙인건데, 보통의 큐는 ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ d a t a 1 d a t a 2 d a t a 3 d a t a 4 ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 이렇다면 회전하는 큐는 다이얼전화기 같이 생겼다고 생각하면 된다. 문제에선 pop,left,right만 가능하다고 나와있다. 더 자세히 보면 뽑아내려는 n개의 수를 만나면 pop하고, 아니면 left혹은 right를 하는것인데 이건 엄청 간단하다. 현재 인덱스를 0번으로 고정하고, 목표 값이 있는 인덱스가 총 길이의 절반보다 크냐작냐에 따라 다르게하면 된다. 예로들어 1 2 3 4 5 6 7 8 9 10 가 있을때 2 9 5면, 1을.. 2021. 12. 8.