본문 바로가기
반응형

코딩테스트20

[자료구조] 딕셔너리(Dictionary)란? 딕셔너리 Key - Value 쌍으로 이루어진 자료구조. 쉽게 생각하면 리스트에서 인덱스 이름(key)을 정할 수 있는 리스트라고 생각하면 이해하기 쉽다. 딕셔너리 선언 # score라는 이름의 딕셔너리 자료형 선언 score = { 'math' : 10, #key(idx) = math, value = 10 'pysics' : 20, 'kor' : 40 } idx(key) value math 10 pysics 20 kor 30 이해가 조금 어렵다면 우리에게 좀 더 친숙한 리스트를 생각해보자. 리스트에서는 인덱스가 0,1 ...N 과 같은 숫자로 접근했었다. (리스트 : score[2] = 30 ) 여기서 인덱스가 숫자가 아닌 문자형으로 들어갈 수 있다면 딕셔너리가 될 수 있는 것이다! (딕셔너리 : sc.. 2023. 8. 7.
[자료구조] 해시테이블(Hash Table)이란? 해시테이블의 필요성을 이해하기 위해 먼저 상반되는 개념인 Direct-adress Table를 알아보자! Direct-adress Table? 키 값이 인덱스가 되는 테이블 ex) list 자료구조에서 student[0] = "김구글" 입력 시 0번 index에 바로 저장. 즉, key 값이 index가 됌 Direct-adress의 단점? 1) 내가 원하는 인덱스가 만일 2022일 경우, 해당 값 이전 인덱스 0~2021 의 메모리가 생성되어야하므로 메모리 낭비가 심함 2) 만일 index가 문자열로 들어올 경우 처리가 불가 hash 테이블의 필요성 대두! Hash Table? 저장, 삭제, 검색의 시간복잡도 모두 O(1)인 빠른 탐색을 위한 자료구조. key-value 데이터를 입력받고 해당 데이터 .. 2023. 8. 7.
프로그래머스 코딩테스트 입문(lv.0) - 完 코딩 기초 트레이닝이 끝난지 엊그제같은데 코딩테스트 입문도 해냈다..! 100문제를 푸는데 와 이건 너무 쉬운데? 하는 것도 있었고 이게 lv0이라고? 왤케 어렵지;; 생각드는 문제도 있었다. 안 풀리는 문제는 미루고 풀수 있는 문제부터 풀다보니 어느새 문제지를 다 풀 수 있었다. 최근까지 유행했던 줄임말이 있는데 "중꺾마"라고, 중요한 건 꺾이지 않는 마음이라는 뜻이다. lv.0을 다 풀고 앞으로 lv.5까지 풀어나가야하는 나에게 해주고 싶은 말이다. 잠시 쉬고, 또 다시 달려나가자!! ✨💻 2023. 7. 27.
[프로그래머스/Lv.0] 겹치는 선분의 길이 문제링크) https://school.programmers.co.kr/learn/courses/30/lessons/120876 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이) def solution(lines): s1 = set(i for i in range(lines[0][0], lines[0][1])) s2 = set(i for i in range(lines[1][0], lines[1][1])) s3 = set(i for i in range(lines[2][0], lines[2][1])) return len((s1 & s2) | (s2 & s3).. 2023. 7. 27.
[프로그래머스/Lv.0] 안전지대 문제링크) https://school.programmers.co.kr/learn/courses/30/lessons/120866 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 풀이) def solution(board): if (len(board) == 1) : if board[0][0] == 1: return 0 for i in range(len(board)): for j in range(len(board)): #젤 위칸 if (i == 0) & (board[i][j] == 1): #양 끝칸 if j == 0: #오 if board[i][j+1] != .. 2023. 7. 27.
[프로그래머스/Lv.0] 옹알이(1) 문제링크) https://school.programmers.co.kr/learn/courses/30/lessons/120956 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 풀이) def solution(babbling): li = [] for i in range(len(babbling)): li.append(babbling[i].replace("aya",' ').replace("ye",' ').replace("woo",' ').replace("ma",' ').replace(' ','')) return li.count('') 아기가 할 수 있는 말을 .. 2023. 7. 27.
[프로그래머스/Lv.0] 가까운 수 문제링크) https://school.programmers.co.kr/learn/courses/30/lessons/120890 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 풀이) def solution(array, n): li = [] for i,v in enumerate(array): if min(list(map(lambda x : abs(x - n) , array))) == abs(v - n) : li.append(v) return min(li) 다른 사람 풀이) solution=lambda a,n:sorted(a,key=lambda x:(abs.. 2023. 7. 27.
[프로그래머스/Lv.0] 이진수 더하기 문제 링크) https://school.programmers.co.kr/learn/courses/30/lessons/120885 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 풀이) def solution(bin1, bin2): return bin(int(bin1,2) + int(bin2,2))[2:] bin1, bin2를 받아 numeric형으로 바꿔주는데, 2진수형태로 바꾸고 bin1과 bin2를 더한다. 해당 덧셈을 출력하여 보면 10진수로 반환되므로, 이후 bin() 함수를 통해 2진수로 바꾸어준다. 2진수로 바뀌면 숫자 앞에 '0b' 가 붙게.. 2023. 7. 27.
[프로그래머스/Lv.0] 3,6,9 게임 문제링크) https://school.programmers.co.kr/learn/courses/30/lessons/120891 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이) def solution(order): order = list(str(order)) return len(list(filter(lambda x : (x=='3') | (x=='6') | (x=='9') , order))) 리스트 안에 3,6,9 만 추출하여 해당 길이를 반환한다. 다른사람 풀이) def solution(order): return sum(map(lambda x:.. 2023. 7. 27.
반응형