본문 바로가기

분류 전체보기30

정렬 리스트 정렬 중, 커스텀 비교 함수 활용 방법 #https://school.programmers.co.kr/learn/courses/30/lessons/42746 #주어진 숫자를 조합하여 만들 수 있는 가장 큰 수를 찾는 문제를 해결 import functools def comparator(a,b): t1 = a+b t2 = b+a return (int(t1) > int(t2)) - (int(t1) < int(t2)) def solution(numbers): n = [str(x) for x in numbers] n = sorted(n, key=functools.cmp_to_key(comparator), reverse=True) answer = str(int(''.join(n))) return answer 2024. 4. 5.
Hash table = dictionary (in python) 파이썬에서 set 자료 구조는 해시 테이블을 기반으로 한다. 해시 테이블의 가장 큰 특징은 평균적인 상황에서 매우 빠른 데이터 검색(추가, 삭제, 조회 등) 속도를 제공한다는 점 = set은 요소의 존재 여부를 확인하는 것에 최적화되어 있기 때문에, 요소가 집합에 포함되어 있는지 여부를 매우 빠르게 확인 def solution(phone_book): phone_hash = set(phone_book) # 해시 테이블 생성 for phone_number in phone_book: prefix = "" for number in phone_number[:-1]: # 마지막 문자는 제외하고 접두사를 생성합니다. prefix += number if prefix in phone_book: return False r.. 2024. 4. 4.
TypeError: cannot unpack non-iterable int object 오류 나는 위치 left, right = 0 오류 원인 left와 right 두 변수에 하나의 값 0을 할당하려고 시도하기 때문 파이썬에서는 여러 변수에 동시에 값을 할당할 때, 할당되는 값의 수와 변수의 수가 일치해야 한다. 수정 후 left, right = 0, 0 2024. 4. 4.
반복문 1. 반복문 제어 continue => 다음 반복문으로 바로 넘어가는 것 break => 반복문을 끝내는 것 2. range() for i in range(5): # i = 0 1 2 3 4 로 반복 for i in range(2,5): # i = 2 3 4 로 반복 for i in range(2,15,3): # i= 2 5 8 11 14 로 반복 3. dictionary 순회 예시 from itertools import combinations def solution(clothes): answer = 1 # Step1. 의상의 종류별로 정리 # Step2. 각 종류에서 의상 수 + 1(의상을 선택하지 않는 경우) # Step3. 스텝 2에서 구한 값들을 서로 곱한 후 - 1(하나도 선택하지 않은 경우) .. 2024. 4. 3.
List 1. 리스트 슬라이싱 >>> kospi_top10[:5] ['삼성전자', 'SK하이닉스', '현대차', '한국전력', '아모레퍼시픽'] >>> kospi_top10[5:9] ['제일모직', '삼성전자우', '삼성생명', 'NAVER'] >>> kospi_top10[5:-1] ['제일모직', '삼성전자우', '삼성생명', 'NAVER'] >>> kospi_top10[-1] ['현대모비스'] >>> kospi_top10[-1:-4:-1] ['현대모비스', 'NAVER', '삼성생명'] 2. 리스트 제거 >>> list.remove(x) : 리스트에서 특정 요소 제거하기 3. 리스트 정렬 >>> sorted(list, reverse=False) # list.sorted()가 아니다!, 정렬된 새로운 리스트 반.. 2024. 4. 3.
String 문자열을 리스트로 만들기 str = "python" my_list = list(str) print(my_list) #['p', 'y', 't', 'h', 'o', 'n'] # 구분자를 기준으로 분리 str = "a,b,c,d,e" my_list = str.split(',') print(my_list) #['a', 'b', 'c', 'd', 'e'] 리스트를 합쳐 문자열로 만들기 '구분자'.join(리스트) 알파벳 다루기 # ord('A')는 65, ord('Z')는 90이므로, 범위를 이용하여 딕셔너리 생성 for i in range(ord('A'), ord('Z')+1): alpha_dict[chr(i)] = i - ord('A') # 'A'부터 'Z'까지의 알파벳을 키로, 해당하는 값은 0부터 25까.. 2024. 4. 3.
Stack 후입선출 구조 (Last In First Out) - 나중에 들어간게 먼저 나가는 구조 # 스택을 만드는 방법 stack = [] 파이썬에서는 리스트가 동적 배열로 구성되어있어서 스택의 기능을 모두 지원한다. # 기본 메소드 stack.append(x) : x를 넣기 stack.pop(x) : x를 뺴기 # 스택을 활용한 Greedy 1.https://school.programmers.co.kr/learn/courses/30/lessons/42883 def solution(number, k): stack = [] # 결과를 저장할 스택 for num in number: print("현재 숫자:", num) print("이전 스택 상태:", stack) # 스택이 비어있지 않고, k가 0보다 크며, 스택의.. 2024. 4. 3.
IT 관련 회사 코딩테스트를 준비하기 위한, 공부 계획 [ 문법 ] - String 처리 메소드 공부 - List 처리 메소드 공부 [ 자료구조 ] - Stack을 활용하는 상황 - Queue를 활용하는 상황 - [ 문제 유형 ] - Greedy - BFS, DFS - 구현 - 동적 프로그래밍 - 그래프 - 해시? [ 공부 과정중 참고한 사이트들] - LG전자 코딩테스트 준비 후기 블로그 1 2024. 4. 3.
[Flutter on Mac] 플러터 애드몹(Admob) 보상형광고 연동과정 - 23.07.06 우선은 ios 플랫폼으로 연동 과정을 기록 1. 패키지 설치 flutter pub add google_mobile_ads - flutter admob 패키지도 따로 있는 것 같은데 에러가 종종 발생해서 그런지, 대부분의 사람들이 google_mobile_ads 패키지를 이용하는 것 같다. flutter pub add get - 상태 관리를 위해 필요하다고 한다 2. App ID 설정하기 (1) 안드로이드 아래 경로 파일 열기 android/app/src/main/AndroidManifest.xml 열면 코드의 가장 맨 위를 다음과 같이 수정 [ 이전 코드 ] [ 수정 코드 ] 2023. 7. 6.
[Flutter on Mac] 플러터 스플래쉬 이미지 적용하기 - 23.07.06 평소에 앱을 실행시키면 처음 로딩할 때 나오는 이미지가 있는데, 그 이미지를 splash 이미지라고 한다. 스플래쉬 이미지를 적용시키는 방법은 다음과 같다. 1. 플러터 스플래쉬(flutter_native_splash) 패키지 설치 flutter pub add flutter_native_splash 위 명령어를 터미널에 입력하여 flutter_native_splash 패키지를 설치한다. 2. 프로젝트의 루트 폴더에 flutter_native_splash.yaml 파일 생성 프로젝트의 루트 폴더는 pubspec.yaml 파일이 존재하는 위치이다. 이곳에 flutter_native_splash.yaml 파일을 생성하고 다음 코드를 입력하여 저장하였다. flutter_native_splash: # This p.. 2023. 7. 6.