leetcode
-
Problem : https://leetcode.com/problems/score-after-flipping-matrix/ Difficulty : Medium Status : Solved Time : ??:??:?? 문제 설명 풀이 비트마스킹은 너무 느렸다...! 좀 더 간결히, 그리고 문제의 본질을 꿰뚫어야 풀 수 있는 문제였다. 언뜻 보면 모든 경우의 수를 다 테스트해보아야 할 것 같지만, 함정이 있다. score는 이진법으로 계산되므로, 제일 높은 차수(0번째 column)가 모두 1인 경우가 그리디하게 가장 큰 값을 지니게 된다. 즉 column 0을 1로 세팅하도록 하자. 이제 column 1부터 순회를 시작하면 된다. 이 때, column 0이 원래 1인 경우는 row가 뒤집어진 경우이므로..
861. Score After Flipping MatrixProblem : https://leetcode.com/problems/score-after-flipping-matrix/ Difficulty : Medium Status : Solved Time : ??:??:?? 문제 설명 풀이 비트마스킹은 너무 느렸다...! 좀 더 간결히, 그리고 문제의 본질을 꿰뚫어야 풀 수 있는 문제였다. 언뜻 보면 모든 경우의 수를 다 테스트해보아야 할 것 같지만, 함정이 있다. score는 이진법으로 계산되므로, 제일 높은 차수(0번째 column)가 모두 1인 경우가 그리디하게 가장 큰 값을 지니게 된다. 즉 column 0을 1로 세팅하도록 하자. 이제 column 1부터 순회를 시작하면 된다. 이 때, column 0이 원래 1인 경우는 row가 뒤집어진 경우이므로..
2024.05.14 -
Problem : https://leetcode.com/problems/largest-local-values-in-a-matrix Difficulty : Easy Status : Solved Time : ??:??:?? 문제 설명 풀이 최대 n의 크기가 100 이하고, 하나의 result를 확인하는 데는 9개의 셀이 필요하므로 짧은 시간 내에 전체를 전부 브루트포스로 해결해 볼 수 있다. 간단하게 구현만 하면 되는 문제. 풀이 코드(Python)class Solution: def largestLocal(self, grid: List[List[int]]) -> List[List[int]]: n = len(grid) answer = [[0]*(n-2) for _ in ran..
2373. Largest Local Values in a MatrixProblem : https://leetcode.com/problems/largest-local-values-in-a-matrix Difficulty : Easy Status : Solved Time : ??:??:?? 문제 설명 풀이 최대 n의 크기가 100 이하고, 하나의 result를 확인하는 데는 9개의 셀이 필요하므로 짧은 시간 내에 전체를 전부 브루트포스로 해결해 볼 수 있다. 간단하게 구현만 하면 되는 문제. 풀이 코드(Python)class Solution: def largestLocal(self, grid: List[List[int]]) -> List[List[int]]: n = len(grid) answer = [[0]*(n-2) for _ in ran..
2024.05.12 -
Problem : https://leetcode.com/problems/maximize-happiness-of-selected-children Difficulty : Medium Status : Solved Time : ??:??:?? 문제 설명 풀이 릿코드에서 맞닥뜨린 한국적인(?) 문제. 지금껏 릿코드 문제를 풀어서 느꼈던 점은. 왠지 백준 골드문제를 달아줘도 손색없을 난이도였다. 그리디로 접근해보자. 어떻게 사람을 뽑던 간에, 최종적으로 k명의 사람을 뽑으므로 감소치는 최대 k*(k-1)/2명이 될 것이다. happiness value는 음수가 될 수 없다. 즉 매 순간 행복도가 최대치인 아이들을 뽑고, 어느 시점에서 행복도 최대치가 0이라면 감소는 더 이상 적용되지 않는다. 즉 내림차순으로 정..
3075. Maximize Happiness of Selected ChildrenProblem : https://leetcode.com/problems/maximize-happiness-of-selected-children Difficulty : Medium Status : Solved Time : ??:??:?? 문제 설명 풀이 릿코드에서 맞닥뜨린 한국적인(?) 문제. 지금껏 릿코드 문제를 풀어서 느꼈던 점은. 왠지 백준 골드문제를 달아줘도 손색없을 난이도였다. 그리디로 접근해보자. 어떻게 사람을 뽑던 간에, 최종적으로 k명의 사람을 뽑으므로 감소치는 최대 k*(k-1)/2명이 될 것이다. happiness value는 음수가 될 수 없다. 즉 매 순간 행복도가 최대치인 아이들을 뽑고, 어느 시점에서 행복도 최대치가 0이라면 감소는 더 이상 적용되지 않는다. 즉 내림차순으로 정..
2024.05.09 -
Problem : https://leetcode.com/problems/double-a-number-represented-as-a-linked-list Difficulty : Medium Status : Solved Time : ??:??:?? 문제 설명 풀이 LeetCode 및 백준을 지금껏 파이썬으로 풀어봤는데, 이제는 간간히 Go로도 풀이해보려고 한다. 생각보다 Go는 재밌고 편리한 언어이고기왕 어떻게 배워둔 김에 이 경험을 어떻게든 유지보존하고 싶고Go를 다루며 부족했던 점인 Low level에서의 코드 작성 루틴을 더 개발해보고 싶어서라는 이유인데... 각설하고, 문제로 돌아가보도록 하자. 우선 다음 방식을 떠올릴 수 있을 것이다. 링크드리스트를 한번 순회하며 현재 저장된 결과를 구한 다음현..
2816. Double a Number Represented as a Linked ListProblem : https://leetcode.com/problems/double-a-number-represented-as-a-linked-list Difficulty : Medium Status : Solved Time : ??:??:?? 문제 설명 풀이 LeetCode 및 백준을 지금껏 파이썬으로 풀어봤는데, 이제는 간간히 Go로도 풀이해보려고 한다. 생각보다 Go는 재밌고 편리한 언어이고기왕 어떻게 배워둔 김에 이 경험을 어떻게든 유지보존하고 싶고Go를 다루며 부족했던 점인 Low level에서의 코드 작성 루틴을 더 개발해보고 싶어서라는 이유인데... 각설하고, 문제로 돌아가보도록 하자. 우선 다음 방식을 떠올릴 수 있을 것이다. 링크드리스트를 한번 순회하며 현재 저장된 결과를 구한 다음현..
2024.05.08 -
Problem : https://leetcode.com/problems/merge-in-between-linked-lists Difficulty : Medium Status : Solved Time : ??:??:?? 문제 설명 풀이 Leetcode 1일 1출첵도 이제부턴 병행하려고 한다(LeetCode가 요구하는 문제 결이 국내 출제 문제와는 결이 다른 느낌? 백준 문제들이 슬슬 매너리즘이 오는 느낌도 있었다...) 링크드리스트 list1, list2를 순차적으로 탐색하면서, list1의 삭제할 부분들을 체크하고 이를 list2에 이어주면 된다. list1의 a-1번째 노드의 next가 list2의 head에, list2의 tail의 next가 list1의 b+1번째 노드가 되도록 연결하면 된다. 풀이..
1669. Merge In Between Linked ListsProblem : https://leetcode.com/problems/merge-in-between-linked-lists Difficulty : Medium Status : Solved Time : ??:??:?? 문제 설명 풀이 Leetcode 1일 1출첵도 이제부턴 병행하려고 한다(LeetCode가 요구하는 문제 결이 국내 출제 문제와는 결이 다른 느낌? 백준 문제들이 슬슬 매너리즘이 오는 느낌도 있었다...) 링크드리스트 list1, list2를 순차적으로 탐색하면서, list1의 삭제할 부분들을 체크하고 이를 list2에 이어주면 된다. list1의 a-1번째 노드의 next가 list2의 head에, list2의 tail의 next가 list1의 b+1번째 노드가 되도록 연결하면 된다. 풀이..
2024.03.20