분류 전체보기

·코딩테스트
🔗 LeetCode - 1302. Deepest Leaves Sum😇 헤매지 않는 날이 없군!우선 첫번째로 문제를 잘못 이해해서 node 자체가 들어오는 지 몰라서... int array가 들어오면 그것을 node로 만들고 tree로 예쁘게 만들어 줬는데!! 이미 treenode 형태로 input이 들어와서 쓸모가 없어짐....코드 보기# Definition for a binary tree node. import queue from collections import deque class TreeNode: def __init__(self, val=0, left=None, right=None): self.val = val self.left = left ..
·코딩테스트
🔗 프로그래머스 - 게임 맵 최단거리P.S | 해당 문제는 데크를 BFS로 이용해서 풀면 문제 답과 효율성 테스트를 통과할 수 있다!이 방법으로도 시도해 보면서 알게 된점은!효율성 테스트를 통과하려면 최대한 적은 경우의 수로 움직여 줘야 한다. 해당하지 않은 경로는 아예 가지 않도록 계속 조건을 줘야 함!그리고1) 간곳을 maps 에서 0으로 처리해 주면서 count를 따로 세는 방법과,2) maps에 count를 저장하면서 실행하는 두가지 방법을 해봤는데둘다 테스트 코드는 통과했지만 효율성은 2)만 통과했다....! 이번주에 아는 선생님과 객체에 관해서 이야기를 나눴다. 객체를 state를 저장하는 데 사용한다는 이야기를 했었는데 그것을 실제로 적용해 보고 싶었다. 그래서 이번 코드를 객체를 이용해서..
·코딩테스트
🔗 프로그래머스 - 타켓 넘버재귀로 풀었다!!각 숫자 사이에 + 또는 - 연산자를 넣어줘야 하는데재귀로 돌면서 디시전 트리 도는 것 처럼 + , - 를 선택하고 마지막 숫자까지 갔을때 target과 같으면 count += 1를 해줘서 답을 얻었다.def solution(numbers, target): def choose(idx, num_sum): if idx == len(numbers): if num_sum == target: return 1 return 0 return choose(idx + 1, num_sum + numbers[idx]) + choose(idx + 1, num_sum - numbers[i..
·자료구조
배웠으나 까먹고 또 배웠으나 헷갈리는 그래서 정리해 둬야겠다.이미 배웠던 분들이 복기하는 용도로 사용하면 좋을 것 같다. 시간 복잡도 ⍬(n2 )[정렬되지 않은 리스트의 크기를 n부터 시작해 하나씩 줄임]Selection sort( 선택 정렬 ) : 제일 큰(작은) 수를 찾아서 제일 뒤(앞)로 보내기코드보기def selectionSort(A): for i in range(0, len(A)-1): min_num = i for j in range(i + 1, len(A)): if A[j] Bubble sort( 버블 정렬 ) : 2개씩 비교해 가면서 큰 수가 점점 뒤로 가게 하기코드보기def bubbleSort(A): for i in range(len(..
·코딩테스트
🔗 프로그래머스 - 소수찾기멍청 이슈로 너무 오래 풀었다...문제 풀이 과정은 다음과 같다.종이 조각들을 조합할 수 있는 모든 경우의 수를 구한다. 숫자로 변환 후 set 안에 넣어 중복되는 경우의 수를 삭제한다.소수 인지 확인한다.여기에서 라이브러리를 사용하지 않았다가 삽질 했다. 앞으로도 자주 사용하게 될거 같아 기록해 놔야겠다. Python itertools순열과 조합 함수를 포함해 여러 iteration 를 만들어 준다. count() : count(10) → 10 11 12 13 14 ...accumulate() : accumulate([1,2,3,4,5]) → 1 3 6 10 15chain() : chain('ABC', 'DEF') → A B C D E Fproduct('ABCD', repe..
·코딩테스트
🔗 프로그래머스 - 카펫이 문제는 연립 일차 방정식을 푸는 문제다.  노란색 부분의 가로를 x, 세로를 y라고 하면x >= y 이여야 하고 x * y = yellow , 2 * (x + 2) + 2 * y = brown 이다여기에서 파이썬 symPy라는 라이브러리를 발견해 적어보려고 한다.코테에서는 사용이 아마 불가하겠지만 유용한거 같아 기록해본다!!symPY 는 수학 라이브러리로 다항식과 같이 수학연산을 하기 위한 라이브러리다.이 라이브러리를 사용하여 문제를 풀면 import sympydef solution(brown, yellow): answer = [] # 노란색 부분의 가로를 x, 세로를 y라고 하면 # x >= y 이여야 하고 x * y = yellow , 2 * (x + 2..
·코딩테스트
🔗 프로그래머스: H-indexh-index 조건을 제대로 이해하는 것이 중요하겠다. n개의 논문이 있을 때1. h번 이상 인용된 논문의 수가 h 이상일 것2. 그 나머지 논문의 수가 h 번 이하로 인용 되었을 것 "나머지 논문"을 잘 읽지 않고, h번 이하로 인용된 논문이 h개 이하일 것으로 생각해서 삽질 했다. ☹️코드 자체는 위의 조건을 그대로 잘 적으면 되는 데 filter 를 사용해서 풀었다. def solution(citations): citations.sort() h = citations[len(citations) // 2] length = len(citations) bigger_equal = len(list(filter(lambda x: x >= h, citation..
·코딩테스트
🔗 프로그래머스 - 가장 큰 수시간이 오래 걸렸다 ㅠㅠㅠㅠ 처음 시작할 때는 호기롭게 시작했는데 테스트에서 와장창 틀려버렸다.1~6 테스트 케이스를 계속 통과 못하다가 했다. 제일 문제였던 2가지 점에 대해서 기록해 보겠다.우선 정렬이 필요한데 조건이 조금 까다롭다. 1. '23' 와 '2313' 일 때 - 즉 왼쪽부터 같은 숫자가 나오다가 다른 경우 '23'을 '2313'과 같은 자릿 수가 되도록 이어 붙였다. 결국 자릿수가 중요하기 때문이다.'2323' 과 '2313'을 비교해보면 '2323'이 더 크므로 '23'+'2313' = '232313' 이 제일 크다ex) '85' 와 '8593'을 비교할 때 '8585' 는 '8593'보다 작으므로 '8593' + '85' = '859385' 가 답이다...
yolang
'분류 전체보기' 카테고리의 글 목록 (21 Page)