코딩테스트
-
[🥲 프로그래머스] 큰 수 만들기 - 탐욕법Algorithm/1일 1코테 2021. 7. 25. 20:22
https://programmers.co.kr/learn/courses/30/lessons/42883 코딩테스트 연습 - 큰 수 만들기 programmers.co.kr ✅ 다른 사람 풀이 def solution(number, k): # number = 1924 stack = [number[0]] # 맨 처음 숫자 1 for num in number[1:]: # 9,2,4가 하나씩 출력 # stack에 있는 값과 현재 num을 비교하여 stack을 채운다! # stack에 값이 있고 & stack의 맨 마지막 값이 현재 값보다 작고 & k가 0보다 크면 while len(stack) > 0 and stack[-1] 0: k -= 1 stack.pop() stack.append(nu..
-
[🥲 프로그래머스] 베스트앨범 - hashAlgorithm/1일 1코테 2021. 7. 24. 16:06
https://programmers.co.kr/learn/courses/30/lessons/42579 코딩테스트 연습 - 베스트앨범 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 programmers.co.kr ✅ 내가 시도한 풀이 # 84점으로 광탈ㅠ def solution(genres, plays): music_list = {} idx = 0 for g, p in zip(genres, plays): # 각 카테고리마다 [고유번호, 플레이횟수] 순으로 넣어준다. if g not in music_list: music_list[g] = [] music_list[g].a..
-
[🥲 프로그래머스] 전화번호 목록 - hashAlgorithm/1일 1코테 2021. 7. 22. 20:47
https://programmers.co.kr/learn/courses/30/lessons/42577 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조 programmers.co.kr ✅ 내가 푼 풀이 # 시간 초과 def solution(phone_book): phone_book.sort() # 시간단축을 위한 정렬 for i, v in enumerate(phone_book): for j in range(i+1, len(phone_book)): if phone_book[j].startswith(v): # v로 시작하면 false retu..
-
[😍 프로그래머스-카카오인턴] 키패드 누르기Algorithm/1일 1코테 2021. 7. 22. 14:33
https://programmers.co.kr/learn/courses/30/lessons/67256 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr 내가 쓴 풀이 def solution(numbers, hand): keypad = [[1,2,3], [4,5,6], [7,8,9],['*',0,'#']] answer = '' L = '30' R = '32' for number in numbers: fo..
-
[🥲 프로그래머스] 등굣길 - Dynamic programmingAlgorithm/1일 1코테 2021. 7. 21. 21:33
https://programmers.co.kr/learn/courses/30/lessons/42898 코딩테스트 연습 - 등굣길 계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m = programmers.co.kr ✅ 내 풀이 (망!) # 시간초과ㅜㅜ def solution(m, n, puddles): to_house = [] answer = [] # 격자만큼의 배열 생성 for i in range(n): to_house.append([True]*m) # 웅덩이 위치는 false로 변경 for puddle in puddles: x = puddle[0]-1 y =..
-
[프로그래머스] 2단계 신규 아이디 추천Algorithm/1일 1코테 2021. 6. 23. 20:44
프로그래머스 2단계. 신규 아이디 추천 https://programmers.co.kr/learn/courses/30/lessons/72410# # 테스트코드 4개 통과 못 함.... def solution(new_id): # 허용되는 특수문자 리스트 ok_list = ['-', '_', '.'] # 소문자로 바꾸고, ok_list 안에 있거나 알파벳, 숫자 n_id=[i for i in new_id.lower() if i in ok_list or i.isalnum()] # 답안 변수 생성 answer = '' # ..이 여러개 붙어 있을 경우에 패스 for i in range(len(n_id)-1): if n_id[i] == '.' and n_id[i+1] == '.': continue else: ans..
-
[leetcode] 344. Reverse StringAlgorithm/1일 1코테 2021. 4. 14. 19:56
문제 leetcode.com/problems/reverse-string/ Reverse String - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com return할 필요없이 s 안의 값만 변경하는 문제. 단, 새로운 list 생성 등을 하면 안되고 s 안에서만 변경해야 한다. 모범답안 class Solution: def reverseString(self, s: List[str]) -> None: """ Do not return anything, modify s ..
-
[🦩 프로그래머스 2단계] 수식 최대화 / 기능 개발 / 다리를 지나는 트럭 / 가장 큰 수Algorithm/케로베로스 2020. 11. 29. 22:02
Q. 수식 최대화 내가 생각한 알고리즘: +-* 중 하나가 나오면 슬라이싱 해주고, 계산해주는 함수 호출.재귀함수 활용해서 숫자만 남을때까지 쪼갠다음에 다시 합쳐주는 방식...각 계산 값을 result에 append하고 max로 가장 큰 값을 출력한다. # 1차시도 def cal(left, right, operator): return eval(left+operator+right) def solution(expression): for index, value in enumerate(expression): if value in '+-*': left = expression[:index] right = expression[index+1:] print(cal(left, right, value)) 이렇게하면 그냥 한..