Python 62

[BOJ][B2]애너그램 만들기 - 1919

https://www.acmicpc.net/problem/1919문제 전문은 링크 참조문제가공알파벳 순서를 바꿀 수 있기 때문에 비교하려는 문자열과 알파벳 수가 같은지 체크하면 된다.문자열마다 알파벳 개수를 체크하여 각각 dict에 담는다.문자열끼리 알파벳 개수의 차이를 출력한다.코드작성def SetAlphabetDict(): ‘a’ ~’z’ 까지의 키를 가진 dict를 만든다.def GetCntOfAlphabet(dict,s): 입력받은 문자열의 각 알파벳 개수를 체크하여 dict에 담는다.def SetAlphabetDict(): result = {} for i in range(26): result[chr(i+97)] = 0 return resultdef GetCntOfAl..

Python/백준 (BOJ) 2025.08.15

[Python]VS Code에서 uv 프로젝트 디버깅하기

uv란?파이썬 프로젝트의 패키지 관리 도구로, 다른 패키지 관리 툴보다 속도가 굉장히 빠르고 프로젝트를 관리하기 편하다.uv로 프로젝트를 만들면 해당프로젝트를 자동으로 가상환경(.venv) 처리해주고,협업을 위해 git을 통해 내려받고 실행만 시키면 알아서 가상환경의 패키지 정보를 동기화 해준다. VS Code에서 디버깅하기아래 명령어로 프로젝트 실행이 가능하다.uv run main.py실행이야 간편한거 알았고, 코드를 짜면서 디버깅을 해야하는데 프로젝트내의 가상환경에서 디버깅 하려면 아래와 같이 설정해야한다1. 최초 실행프로젝트를 생성하고나면 실행 명령어로 최초 1번 실행해주자.그러면 .venv폴더가 생성된다.2. 인터프리터 선택CTRL + SHIFT + R 입력 후 'select interpreter..

Python 2025.08.14

[BOJ][B2]좋은 자동차 번호판 - 1871

https://www.acmicpc.net/problem/1871문제 전문은 링크 참조문제가공‘-’ 기준으로 문자열을 분리한다 앞은 알파벳, 뒤는 숫자앞의 문자열은 알파벳의 순서 * 26진법화앞의 값과 뒤의 값의 차이가 100이하면 좋은 번호판. 아니면 나쁜 번호판코드작성앞의 문자열을 숫자화 하는 메서드를 별도로 분리.아스키코드를 이용하여 알파벳의 자리수를 체크하고 26 진법화N = int(input())def GetFScore(f): reverse_f = f[::-1] answer= 0 for i,c in enumerate(reverse_f): c_num = ord(c) - ord('A') answer += c_num * (26 ** i) return an..

Python/백준 (BOJ) 2025.08.14

[BOJ][B2]문어 숫자 - 1864

https://www.acmicpc.net/problem/1864 문제 전문은 링크 참조문제가공특수 문자별로 숫자를 매핑한다.변환된 숫자의 8진수를 10진수로 출력한다.코드작성코드 내에서는 편하게 짜려고 문자열을 reverse하고 8진수의 제곱 수를 증가시켰는데,문자열을 뒤집지 않고 제곱 수를 감소시켜서 구현하는게 더 효율적일 듯 하다.num ={'-':0, '\\':1, '(' :2, '@' :3, '?' :4, '>' :5, '&' :6, '%' :7, '/' :-1}while True: s = input() if s == '#': break reverse = s[::-1] answer=0 for idx..

Python/백준 (BOJ) 2025.08.13

[BOJ][B2]폭죽쇼- 1773

https://www.acmicpc.net/problem/1773문제 전문은 링크 참조문제가공각자 다른 등차를 가진 등차수열들의 합집합을 구한다.코드작성등차2 % 등차1 == 0 이면 등차1의 수열은 등차2의 수열의 모든 값을 가지기 때문에 계산할 필요가 없으므로 걸러낸다.값을 구할때, 연산속도가 나눗셈(/,%) 보다는 곱셈(*)이 빠르므로 곱셈을 이용한다.import sysN,C = map(int, sys.stdin.readline().split())interval = []fireworks = {}answer = 0 for i in range(1, N + 1): interval.append(int(sys.stdin.readline()))interval.sort()for s_idx,i in enum..

Python/백준 (BOJ) 2025.08.12

[BOJ][B2]추론 - 1731

https://www.acmicpc.net/problem/1731문제 전문은 링크 참조문제가공첫번째 입력값 = 수열이 입력될 횟수입력값을 통해등차 또는 등비수열 인지 확인하여 마지막 입력 값의 다음 값을 출력코드작성등차, 등비를 확인 하기 위해서는 세개의 수열 값만 있으면 된다.아래 공식이 성립하지 않으면 등비수열cnt = int(input())f,s,c = 0,0,0 #first,second,thirdgap = 1for i in range(cnt): val = int(input()) if f == 0 : f = val elif s == 0 : s = val elif c == 0 : c = valif(abs(f-s) == abs(s-c)): # 등차수열 gap = abs(f-s..

Python/백준 (BOJ) 2025.08.11

[BOJ][B2]암호- 1718

https://www.acmicpc.net/problem/1718문제 전문은 링크 참조문제가공평문에 매핑되는 암호 알파벳의 자리수만큼 앞으로 당긴다.a보다 자리수가 넘어가는 경우 z부터 다시 시작코드작성문자를 아스키코드화 하여 자리수를 확인한다.❓아스키 코드란? 10진수 또는 16진수를 이용해 문자를 표시하기 위한 코드. ex) print(ord('a')) # 97arr[-1] = arr배열의 뒤에서 첫번째 값인 성질을 이용한다.for i,c in enumerate(text) : i = 배열의 인덱스 , c = 배열의 값alpabet = list('abcdefghijklmnopqrstuvwxyz')t= input()k = input()def encrypt(text, key): result ='' ..

Python/백준 (BOJ) 2025.08.10

[BOJ][B2]손익분기점-1712

https://www.acmicpc.net/problem/1712문제 전문은 링크 참조문제가공A = 고정 비용B = 노트북 1대당 생산비용C = 노트북 판매가격x= 노트북 생산 수량아래 공식으로 몇대를 팔아야 본전이 나오는지 확인할 수 있다.코드작성공식을 코드화 하자손익분기점은 수익이 생기는 시점이기 때문에 본전+1대를 더 팔면 손익분기점.A,B,C = map(int, input().split())print ( A // (C-B) + 1 if B

Python/백준 (BOJ) 2025.08.09

[BOJ][B2]줄 세우기 - 1681

https://www.acmicpc.net/problem/1681문제 전문은 링크 참조문제가공L 숫자가 포함되지 않은 숫자들을 오름차순 정렬N번째의 숫자 정보를 출력코드작성N의 최대 입력값이 1,000,000 이나 되기도 하고, 최대값만 필요하기 때문에최대값과 카운터만 계산한다.N,L = map(int, input().split())lastNum = 1for i in range(1, N + 1): while True : if str(L) in str(lastNum): lastNum+=1 continue else : lastNum += 1 breakprint(lastNum -1) #마지막 값까지 ..

Python/백준 (BOJ) 2025.08.08

[BOJ][B2]치킨 쿠폰 - 1673

https://www.acmicpc.net/problem/1673 문제 전문은 링크 참조문제가공본 문제를 1차적으로 정리하자면 아래와 같다.가지고 있는 쿠폰으로 치킨을 시킨다치킨 한마리당 도장하나를 받는다받은 도장을 쿠폰으로 바꾼다1번 으로 돌아가서 더 이상 주문 하지 못할때 까지 반복치킨을 주문할 때마다,현재먹은 치킨 수남은 쿠폰 수남은 도장 수를 관리 해야 하는데, 관리해야 할 변수가 많아지면 계산이 복잡해지므로아래와 같이 문제를 2차 가공한다2차가공가지고 있는 쿠폰을 스탬프로 바꾼다.쿠폰의 개념을 삭제하고 치킨과 스탬프 개수만 계산하자코드작성import syswhile True: input = sys.stdin.readline().rstrip() if input == '': ..

Python/백준 (BOJ) 2025.08.07