본문 바로가기

분류 전체보기218

# 그리디 알고리즘 - 곱하기 혹은 나누기 *출처:https://www.youtube.com/watch?v=2zjoKjt97vQ&t=2359ss = input()# 첫 번째 문자를 숫자로 변경하여 대입result = int(s[0])for i in range(1, len(s)): # 두 수 중에서 하나라고 0이나 1이면 더하기 num = int(s[i]) if num 2025. 11. 10.
# 그리디 알고리즘 - 1이 될 때까지 *출처:https://www.youtube.com/watch?v=2zjoKjt97vQ&t=2359sn, k = map(int, input().split())result = 0while True: # n이 k로 나누어 떨어지는 수가 될 때까지 빼기 tmp = (n//k) * k result += n - tmp n = tmp # 더이상 나눌 수 없을 때 반복문 탈출 if n 2025. 11. 10.
*[백준/파이썬] 18870번 좌표 압축 | enumerate함수 *딕셔너리 이용, 정렬 후 0부터 순서를 이용하는 거 까지는 접근했으나 인덱스 접근과 enumerate 함수 사용을 생각 못 함. ✅ 좌표 압축 문제의 올바른 해결 로직좌표 압축은 **"자기보다 작은 고유한 좌표의 개수"**를 구하는 것입니다. 이는 정렬된 고유값 리스트에서 각 값이 몇 번째 인덱스에 있는지를 찾는 것과 같습니다. 💡 enumerate의 역할enumerate() 함수는 리스트를 순회할 때 인덱스와 요소를 동시에 반환합니다.i (인덱스)val (요소)의미055는 가장 작은 값(0번째)11010은 두 번째로 작은 값(1번째)22020은 세 번째로 작은 값(2번째) for i, val in enumerate(sorted_coor): dic_coor[val] = i [최종 코드]impor.. 2025. 10. 31.
*[백준/파이썬] 1181번 단어 정렬 | lambda함수 정렬키 [최종 코드]import sysn = int(input())words = [input() for _ in range(n)]# 중복 제거words_set = set(words)words = list(words_set)# 정렬words.sort(key=lambda x: (len(x), x))sys.stdout.write('\n'.join(map(str, words)) + '\n')[핵심 부분]words.sort(key=lambda x: (len(x), x))📝 정렬 키 원리 분석: key=lambda x: (len(x), x)이 코드는 리스트 word_list의 각 요소(문자열)를 정렬하기 전에, **임시로 사용할 정렬 기준(Key)**을 만들어내는 역할을 합니다.1. lambda x: (...) (임시 .. 2025. 10. 22.
*[백준/파이썬] 11651번 좌표 정렬하기 2 | lambda함수 이용 정렬 [최종 코드]import sysn = int(sys.stdin.readline())coor = []for i in range(n): a, b = map(int, input().split()) coor.append((a, b))coor.sort(key=lambda x: (x[1], x[0]))output_lines = [f'{x} {y}' for x, y in coor]sys.stdout.write('\n'.join(map(str, output_lines)) + '\n')[핵심 부분]coor.sort(key=lambda x: (x[1], x[0]))- lambda 함수를 이용해 (x, y)를 (y, x)로 바꾸기output_lines = [f'{x} {y}' for x, y in coor]sys.. 2025. 10. 22.
*[백준/파이썬] 11650번 좌표 정렬하기 [최종 코드]import sysn = int(sys.stdin.readline())coor = []for _ in range(n): a, b = map(int, input().split()) coor.append((a, b))# 정렬 로직 (기본 튜플 정렬: x좌표 우선, y좌표 차선)coor.sort()# 출력 최적화 (출력 형태 가공)# coor의 각 튜플 (a, b)를 'a b' 형태의 문자열로 직접 변환하는 과정output_lines = [f'{x} {y}' for x, y in coor]sys.stdout.write('\n'.join(map(str, output_lines)) + '\n')[핵심 부분]# 출력 최적화 (출력 형태 가공)# coor의 각 튜플 (a, b)를 'a b' .. 2025. 10. 22.