본문 바로가기
[99클럽 코테 스터디 32일차 TIL] 정렬 ✏️  오늘의 문제 : 869. Reordered Power of 2  📌 주안점주어지는 정수 n을 구워삶아 2의k승으로 표현이 가능하다면 되는 문제처음 드는 생각은, n의 모든 가짓수마다 2의 k승을 구한다.그러나 적절한 n을 찾는것보다 같은 길이의 문자열인 2의 k승에서만 비교하는 것이 더 효율적이다.그래서, 2의 k승의 k를 1씩 늘려가며 n과 숫자열의 길이가 같을 때를 찾는다.이후 n의 숫자가 어떻게 구성되어있는지 numlist[10] 배열에 담는다.numlist[i] = 숫자 i의 갯수if numlist[i] = 0 for i in range(10)이라면, True return📌 해결 방법numlist[10] 배열 생성숫자를 글자로, 글자를 숫자로 바꾸는 변환 과정이 조금 번거롭지만 글자로 .. 2024. 6. 21.
[백준] 10026 적록색약 (DFS) 시간 허비한점, 보완할 점, 기억할 점접근 방식은 생각보다 쉽게 파악했다. 모든 노드에서 DFS를 실행하는데, DFS의 끝조건을 모두 탐색했을시로 설정했다. 한 점에서 한 색(R,G,B) 기준으로 탐색을 마치면, 연결된 하나의 색 구역을 파악할 수 있다.DFS를 구현하기 위해 재귀를 돌렸는데, 입력되는 그래프는 N*N 그래프로 모든 노드에 대해서 DFS를 돌린다면 쉽게 재귀 초과가 발생할 수 있다.스택으로 바꾸어서 구현했고, 변환 자체는 오래 걸리지 않았다.스택으로 바꿀 때, 다음 정점 판단이 기존 파라미터로 전달에서 글로벌 stack 자료구조에 의존하는 방식으로 바뀌었기에, 탐색에 앞서 stack에 push해주는 연산을 까먹지 말자DFS에서 visited 배열을 따로 생성하여 방문 여부를 파악하는 방식.. 2024. 6. 20.
[99클럽 코테 스터디 31일차 TIL] 정렬 ✏️  오늘의 문제 : 347. Top K Frequent Elements  📌 주안점dictionary를 사용해 key는 number, value는 빈도수로 설정한다.이후 dictionary를 sort한 결과중 상위 k개까지 리턴 📌 해결방법defaultdict(int)로 빈도수 파악하기 위한 자료구조 설정sorted 함수로 정렬한다.python 의 sorted함수는 O(nlogn) 시간 복잡도의 알고리즘 중에서도 최적화가 잘된 정렬함수상위 k개의 결과를 반환한다.from collections import defaultdictclass Solution: def topKFrequent(self, nums: List[int], k: int) -> List[int]: dic = defa.. 2024. 6. 20.
[99클럽 코테 스터디 30일차 TIL] 문자열 ✏️  오늘의 문제 : 451. Sort Characters By Frequency   📌 주안점frequency를 구하고, 저장하는 방법대소문자 구별해야한다. 📌 해결방법 dictionary를 만들어 key를 문자한글자로, value를 frequency로 저장class Solution: def frequencySort(self, s: str) -> str: dt = {} for i in s: print(i) if i in dt.keys(): dt[i] += 1 else: dt[i] = 1 ansStr = "" ans = sorted(.. 2024. 6. 19.
[2024 KAKAO WINTER INTERNSHIP 코테] 1. 가장 많이 받은 선물 핵심 요약, 기억할것 맨 아래 🎯문제 : 가장 많이 받은 선물⏱️ 소요시간 : 24분 ⛳ 주안점선물지수란, 이번달 a가 모두에게 준 선물수 - 받은 선물수 선물을 주고받는 원칙선물 주고받은 기록이 a,b간 있다면더 많이 준 사람이 하나 받음같다면, 선물지수 높은 사람이 하나 받음선물지수도 같다면, 선물을 주고받지 않음선물 주고받은 기록이 없다면, 선물지수 높은 사람이 하나 받는다구해야 할 것 : 가장 선물 많이 받아야 하는 친구의 선물 🧑‍💻 코딩 및 자료구조선물 주고받은 history 기록할 2차원 배열 boardi가 j에게 n개의 선물 주었다면, board[i][j] == n선물지수 기록할 1차원 배열 statusListgifts 배열의 입력은 "a b"의 형태로 구성되어 있고, board에 기.. 2024. 6. 19.
[99클럽 코테 스터디 29일차 TIL] ✏️  오늘의 문제 : 1529. Minimum Suffix Flips  📌 주안점i번째 index에서 flip할 경우 i~n-1까지의 원소 전부 flip된다는 것.순서대로 (1~n-1) 다 flip하는 수 밖에 없다.실제로 비트를 변경할 필요 없이, target[i]와 현재 몇번 flip했는지의 정보만 있으면 된다.for문 한번으로 해결class Solution(object): def minFlips(self, target): cnt = 0 tLen = len(target) for i in range(tLen): #i = 1, cnt = even if target[i] == "1" and cnt % 2 == 0: .. 2024. 6. 18.
[99클럽 코테 스터디 28일차 TIL] 문자열 ✏️  오늘의 문제 : 1286. Iterator for Combination 📌 주안점itertools의 combination을 잘 활용했어야 하는 문제hasNext와 next는, index 검사와 다음번 index를 참조하면 되는 것for combination in itertools.combinations(characters, combinationLength): self.combinations.append(''.join(combination)) 2024. 6. 18.