https://leetcode.com/problems/subtree-of-another-tree/ Subtree of Another Tree - 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 subRoot 노드가 root 노드의 subtree인지 확인하는 문제입니다. 노드의 val, left, right가 같은지 확인하면서 들어가야해서 두개의 재귀함수가 필요했습니다. None처리가 굉장히 복잡했던 문제.. dfs함수는 root함수를 dfs로 탐색하고, comp..
[문제] 디딤돌의 내구도와 한번에 건널 수 있는 디딤돌의 갯수가 주어졌을 때 최대 몇명이 건널 수 있는지 계산하는 문제 입니다. 입출력 예시 : stones = [2, 4, 5, 3, 2, 1, 4, 2, 5, 1], k = 3 [풀이] 1. 아주 간단한 방법: 한명씩 건넌다고 치고 stones의 모든 원소값을 1씩 빼고 다시한번 0이하의 값이 연속되는지 확인합니다. 하지만 이 방법은 2중 for문으로 n^2의 시간복잡도가 소요됩니다. 원소의 최대값은 2억이고, 배열의 크기의 최대값은 20만이므로 n^2의 방법으로는 1초안에 풀이가 불가능합니다. 2. 이진탐색법의 LogN의 시간복잡도를 활용 몇명이 건널 수 있는지가 문제이기때문에 몇명인지를 이진탐색으로 탐색해서 구해보면 빠르게 구할 수 있을거 같습니다...
깔끔하게 풀어보고 싶어서 클래스와 메서드를 만들어서 풀이를 해봤다. # https://leetcode.com/problems/count-items-matching-a-rule/ # count-items-matching-a-rule.py class Solution: def countMatches(self, items: List[List[str]], ruleKey: str, ruleValue: str) -> int: class Rule: def __init__(self): self.typedict = {} self.colordict = {} self.namedict = {} def change_dic(self, key): if key == 'type': dic = self.typedict if key == ..
https://leetcode.com/problems/sort-integers-by-the-number-of-1-bits/ Sort Integers by The Number of 1 Bits - 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 int 형태의 숫자를 bit로 만들었을경우 1과 0으로 표현할 수 있다. ex) 7 -> 01 이때 나오는 1의 갯수로 int리스트를 정렬해주면 된다. 나는 countOneBit라는 함수를 만들어서 했지만 python에는 >..
https://programmers.co.kr/learn/courses/30/lessons/92334 코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr 유저들의 id_list가 있고, 이 유저들의 신고한 내역인 report가 주어집니다. report를 기반으로 딕셔너리에 신고당한 유저 : 신고한 유저 형태로 저장한다음 신고한 유저의 수가 k가 넘는 신고당한 유저를 신고한 유저를 기준으로 다시한번 메일을 수신하는 딕셔너리에 넣어줍니다. 그리고 마지막에 id_list 순서대로 for문을 돌며 result값을..
https://programmers.co.kr/learn/courses/30/lessons/43105?language=python3 코딩테스트 연습 - 정수 삼각형 [[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30 programmers.co.kr 기본적인 DP(Dynamic Programming)문제 입니다. 어떤 경로로 가는것이 최고의 합이 나오는지 궁금한 문제 입니다. 예시 풀이 첫번째줄에서 두번째줄로 갈때 7 에서 3 또는 8 을 고를때 8을 고르는게 좋을 수 있지만 8을 선택하면 세번째줄의 8을 고르지 못할 수 있습니다. 만약 세번째줄의 8이 100이었으면 그때그때 최선의 숫자를 고르는것은 좋지 않은 선택이 될 수 있습니다. 따라서 가능한 경..
https://www.acmicpc.net/problem/1339 1339번: 단어 수학 첫째 줄에 단어의 개수 N(1 ≤ N ≤ 10)이 주어진다. 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 대문자로만 이루어져있다. 모든 단어에 포함되어 있는 알파벳은 최대 www.acmicpc.net ABC, BACDE가 있다면 B가 제일 높은숫자, 그다음 A, C 순으로 큰 자릿수에 있는 알파벳 순으로 높은 숫자를 매겨줘야 제일 큰 합을 얻어낼 수 있습니다. 이를 위해 1의자리에 있는 알파벳 (C, E) 에 1을 더해주고, 10의자리에 있는 알파벳(B, D)에는 10을 더해주고 마지막에 정렬을 해줘서 제일 숫자가 높은 알파벳에 우선순위를 정할 수 있도록 하였습니다. # https://w..
- Total
- Today
- Yesterday
- go
- sql lite
- conTeXt
- query
- 소프트웨어 장인
- for-else
- 독후감
- 팰린드롬수
- django
- Two Scoops of Django
- stdout
- 방금그곡
- 백준
- ManyToMany
- gunicorn
- 프로그래머스
- 의대 신경학 강의
- 문자열 뒤집기
- go context
- dfs
- leetcode
- Python
- 파이썬
- taggit
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |