본문 바로가기
  • 시 쓰는 개발자

알고리즘/코테 스터디 (2024)6

대충 만든 자판 def solution(keymap, targets): d = dict() result = [] for i in keymap: for target in i: if target in d: # 값이 이미 있을 때 d[target] = min(i.index(target) + 1, d[target]) else: # 값을 처음 넣는 경우 d[target] = i.index(target) + 1 for i in targets: sum = 0 for target in i: if target not in d: sum =.. 2024. 5. 19.
코테 문법정리 (4) - 딕셔너리{ } , 집합{ } 딕셔너리 key : value 쌍으로 구성되는 자료형이다. 순서가 없기 때문에 인덱싱 불가능. key에는 불변 데이터만 사용되지만, value에는 가변 데이터도 사용될 수 있다. 딕셔너리는 내부적으로 "해시 테이블"을 사용해서 검색 및 수정에 O(1)만 걸린다. 가변 객체이다. (가변 : 리스트, 셋, 딕셔너리 / 불변 : 문자열, 튜플, 수 자료형) 딕셔너리 메소드 keys() : key 데이터만 뽑아서 리스트로 이용할 때 사용 values() : value 데이터만 뽑아서 리스트로 이용할 때 사용 items() : key, value 한쌍을 리스트로 이용할 때 사용 https://100won-developer.tistory.com/entry/dictionary%EC%97%90%EC%84%9C-key-.. 2024. 3. 16.
코테 문법정리 (3) - 문자열 " " , 튜플 ( ) 문자열 파이썬의 문자열은 내부적으로 리스트처럼 처리된다. 따라서 인덱싱, 슬라이싱이 가능하다. 불변 객체이다. 불변 객체이다. (가변 : 리스트, 셋, 딕셔너리 / 불변 : 문자열, 튜플, 수 자료형) 문자열 초기화 큰/작은 따옴표를 이용하여 문자열을 초기화 한다. 다만 큰따옴표로 감싸면 내부의 작은 따옴표는 그대로 표기되고, 작은 따옴표로 감싸면 내부의 큰 따옴표가 그대로 표기된다. 따옴표 표시하기 백슬래시를 이용한다. \" 라고 표시하면 따옴표 자체를 프린트할 수 있다. str1 = "hello" str2 = "hi kwang's mom~" # hi kwang's mom~ str3 = "\"hello\"" # "hello" 문자열 연산 str1 + str2 : 두 문자열을 더하기 기호를 이용해 더한다.. 2024. 3. 16.
코테 문법정리 (2) - 리스트 [ ] ★★★ 자료형은 잘 알아두어야 한다. 자료형에 따라 쓰는 함수도 다르고 처리 방식도 달라지니 조심하자. 리스트 ★★★내부적으로 배열이다.가변 객체이다. (가변 : 리스트, 셋, 딕셔너리 / 불변 : 문자열, 튜플, 수 자료형)연결리스트라서 append(), remove() 등 사용 가능배열 혹은 테이블이라고 부르기도 함.리스트 초기화 방법a = [1,2,3,4,5] # 직접 값을 넣어서 초기화할 수 있다.a = list() # 빈 리스트 만들기 (1)a = [] # 빈 리스트 만들기 (2) TIP - 모든 값 0으로 초기화 하기n = 5a = [0]*n # [0,0,0,0,0]이런식으로 크기가 N이고, 모든 값이 0인 1차원 리스트를 초기화 할 수 있다. 리스트 인덱싱인덱스에 -1을 넣으면 맨 뒤에 값을 가져올.. 2024. 3. 15.
코테 문법정리 (1) - 실수형, 연산자 정수형 대부분의 입출력 형태이다. pass 실수형 제일 조심해야하는 게 바로 실수형이다. 일단 표현 방식부터 알아보자. 1.23 1e9 # 10억 67.22e1 # 672.2 65e-1 # 6.5 우리가 아는 방식 외에도 e나 E를 이용해서 위와같이 표현할 수 있다. 큰 수는 저렇게 문제가 나오기도 하니 알아두자. 부동 소수점 실수를 처리할 때 부동소수점 방식을 이용하기에 0.3 + 0.6은 0.89999999.... 로 저장된다. 보통 정수나 문자열 등으로 입출력을 받기에 이런 것 까지 고려하는 문제는 잘 나오지 않겠지만 알아는 두자. round 함수 - round(실수, 반올림하고자 하는 위치-1) 위 상황처럼 소수점으로 곤란할 때 round함수를 쓸 수 있다. 윗줄에서 말한 반올림하고자 하는 위치-.. 2024. 3. 14.
문제풀이 & 오답노트 양식 step 1. 논리적인 흐름 직접 써내려가며 문제 파악하기 step 2. 적합한 자료구조 생각하기 step 3. 시간복잡도, 공간복잡도 계산해보기 step 4. 문제 풀기 (20~30분 투자) step 5. 문제 정리 / 오답노트하기 문제 분석 알고리즘 설계 내 코드 틀린 이유 코드 수정 느낀점 추가하면 좋은 것)) 시간복잡도 2024. 3. 4.