본문 바로가기

CS46

10진수 n진수 변환, n진수 10진수 변환 진수 문제가 나오면 항상 내장 함수를 찾느라 시간이 좀 걸렸다..! 해당 내용을 정리해보기로 한다 ! 10진수에서 n진수 변환 10진수 > 2진수, 8진수 16진수 python에서는 2진수, 8진수, 16진수 변환을 위한 bin, oct, hex 메서드를 지원한다. 주의할점은 앞 두 글자는 진법 표시를 위해 있다는 점 ! bin(11)[2:] 와 같이 얻을 수 있다. print(bin(11)) print(oct(11)) print(hex(11)) # 0b1011 # 0o13 # 0xb 10진수 > n진수 혹은 함수작성을 통해 원하는 진법으로 변환이 가능하다. def convert(n, base=2): T = '0123456789ABCDEF' q, r = divmod(n, base) if q == 0: r.. 2023. 5. 10.
[백준] 19637: IF문 좀 대신 써줘 python 구현 / 이분 탐색(bisect) 문제 게임 개발자인 밀리는 전투력 시스템을 만들어, 캐릭터가 가진 전투력을 기준으로 칭호를 붙여주려고 한다. 예를 들어, 전투력 10,000 이하의 캐릭터는 WEAK, 10,000 초과 그리고 100,000 이하의 캐릭터는 NORMAL, 100,000 초과 그리고 1,000,000 이하의 캐릭터는 STRONG 칭호를 붙여준다고 하자. 이를 IF문으로 작성한다면 아래와 같이 구현할 수 있다. 혼자서 게임을 개발하느라 매우 바쁜 밀리를 대신해서, 캐릭터의 전투력에 맞는 칭호를 출력하는 프로그램을 작성하자. 입력 첫 번째 줄에는 칭호의 개수 N (1 ≤ N ≤ $10^5$)과 칭호를 출력해야 하는 캐릭터들의 개수 M (1 ≤ M ≤ $10^5$)이 빈칸을 사이에 두고 주어진다. (1 ≤ N, M ≤ $10^5.. 2023. 5. 8.
[백준] 9935: 문자열 폭발 python 구현 / 스택(Stack) 문제 상근이는 문자열에 폭발 문자열을 심어 놓았다. 폭발 문자열이 폭발하면 그 문자는 문자열에서 사라지며, 남은 문자열은 합쳐지게 된다. 폭발은 다음과 같은 과정으로 진행된다. 문자열이 폭발 문자열을 포함하고 있는 경우에, 모든 폭발 문자열이 폭발하게 된다. 남은 문자열을 순서대로 이어 붙여 새로운 문자열을 만든다. 새로 생긴 문자열에 폭발 문자열이 포함되어 있을 수도 있다. 폭발은 폭발 문자열이 문자열에 없을 때까지 계속된다. 상근이는 모든 폭발이 끝난 후에 어떤 문자열이 남는지 구해보려고 한다. 남아있는 문자가 없는 경우가 있다. 이때는 "FRULA"를 출력한다. 폭발 문자열은 같은 문자를 두 개 이상 포함하지 않는다. 풀이 처음에는 정규표현식(re)의 sub 메서드를 사용하여 문제를 해결하고자 했다.. 2023. 5. 1.
[백준] 1253: 좋다 python 구현 / 투 포인터 문제 N개의 수 중에서 어떤 수가 다른 수 두 개의 합으로 나타낼 수 있다면 그 수를 “좋다(GOOD)”고 한다. N개의 수가 주어지면 그 중에서 좋은 수의 개수는 몇 개인지 출력하라. 수의 위치가 다르면 값이 같아도 다른 수이다. 풀이 리스트를 정렬한다. 0 ~ N-1까지 반복문을 돌면서 i번째 원소를 선택하고 이를 제외한 리스트(temp)를 생성한다. 이후 temp에서 두 포인터를 정하여 원소의 합(total)이 i번째 원소에 해당하는지 비교한다. total list[i] : end 감소 total == list[i] : answer 증가 후 break 2, 3 과정을 반복한다 CODE import sys n = int(input()) num_lis.. 2023. 5. 1.