Problem Solving
-
[LeetCode] Rotate Array: 배열 회전 마스터하기 (Kotlin 풀이 및 최적화 전략)Problem Solving/LeetCode 2026. 1. 16. 23:18
오늘은 기술 면접 단골 문제인 LeetCode의 189. Rotate Array 문제를 함께 살펴보겠습니다. 배열을 다루는 기본적인 감각은 물론, 공간 복잡도 최적화 능력을 어필하기 아주 좋은 문제입니다.📌 문제 개요주어진 정수 배열 nums를 오른쪽으로 k단계만큼 회전시키는 문제입니다.Input: nums = [1,2,3,4,5,6,7], k = 3Output: [5,6,7,1,2,3,4]핵심 조건: k는 음수가 아닐 수 있으며, 배열의 길이보다 클 수 있습니다. 또한, 가능하다면 O(1) 공간 복잡도(In-place)로 해결하는 것이 권장됩니다.💡 첫 번째 접근: 임시 배열 활용하기 (Space O(n))코드 구현 (Kotlin)class Solution { fun rotate(nums: I..
-
[LeetCode] 27. Remove ElementProblem Solving/LeetCode 2025. 3. 2. 14:22
class Solution(object): def removeElement(self, nums, val): result = [] k = 0 for i in nums: if val != i: k+=1 result+=[i] nums[:] = result[:] return khttps://leetcode.com/problems/remove-element/?envType=study-plan-v2&envId=top-interview-150 주어진 배열 nums에서 val 이라는 값을 전부 제거한 뒤, val이 아닌 원소의 개수를 반환하는 문제새로운 배열을 만들..
-
[LeetCode] 88. Merge Sorted ArrayProblem Solving/LeetCode 2025. 2. 23. 16:08
오랜만에 리트코드를 풀어봤다https://leetcode.com/problems/merge-sorted-array/?envType=study-plan-v2&envId=top-interview-150오름차순으로 정렬된 두 개의 배열을 합치는 것포인터 두 개를 사용했고, 마지막 인덱스 처리하기 번거로워서 각각의 배열 양 끝에 max number 값을 넣어주었다import sysclass Solution(object): def merge(self, nums1, m, nums2, n): i = 0 j = 0 result = [] nums1+=[sys.maxsize] nums2+=[sys.maxsize] while i오랜만에 푸니까 ..
-
[Programmers]괄호 회전하기(Python)/StackProblem Solving/Programmers 2021. 9. 26. 22:43
https://programmers.co.kr/learn/courses/30/lessons/76502# 코딩테스트 연습 - 괄호 회전하기 programmers.co.kr def parenthesesString(p): s=[] v={'[':0, '{':1, '(':2, ']':0, '}':1, ')':2} for k in p: if k in ['[', '{', '(']: s.append(v[k]) else: if len(s)!=0 and s[-1]==v[k]: s.pop() else: return 0 if len(s)!=0: return 0 return 1 def solution(s): answer = 0 for i in range(len(s)): answer+=parenthesesString(s[i:]+..
-
[BOJ]백준 23030번: 후다닥을 이겨 츄르를 받자!(C++)/DijkstraProblem Solving/BOJ(백준) 2021. 9. 16. 00:14
https://www.acmicpc.net/problem/23030 23030번: 후다다닥을 이겨 츄르를 받자! 쿠기는 평소 지하철 최단 경로를 탐색하여 소요 시간을 알려주는 '후다다닥' 어플을 사용 중이다. 그러나 쿠기는 걸음이 너무 느려서 '후다다닥'이 알려주는 경로를 따라가면 항상 지하철이 떠 www.acmicpc.net 좌표가 아닌 지하철 (노선, 역)의 정보를 가진 다익스트라 문제 유형 실제 그래프에 더 가까우니까 사실 다익스트라의 취지(?)에 더 적합한 문제 유형 같당 노선의 역 개수를 입력받아 이차원 벡터를 만들어준 뒤 환승역이 있는 곳에는 이어지는 역에 대한 정보를 넣어주었다 역 사이의 거리는 일정하므로 역 번호의 차를 이용했고 다익스트라 풀이를 위해 해당 노선에 존재하는 환승역들에 대해 ..
-
[SWEA] 2383번: 점심 식사시간(C++)/Bitmask, SimulationProblem Solving/SWEA 2021. 9. 14. 09:48
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5-BEE6AK0DFAVl&categoryId=AV5-BEE6AK0DFAVl&categoryType=CODE&problemTitle=%EB%AA%A8%EC%9D%98&orderBy=RECOMMEND_COUNT&selectCodeLang=ALL&select-1=&pageSize=10&pageIndex=2 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 계단의 수가 2개로 제한되어 있어서 비트마스킹을 이용해서 사람*계단에 매칭되는 경우의 수를 구해주었당 계단 입구에서 대기하는..
-
[SWEA] 5650번: 핀볼 게임(C++)/SimulationProblem Solving/SWEA 2021. 9. 14. 00:34
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXRF8s6ezEDFAUo&categoryId=AWXRF8s6ezEDFAUo&categoryType=CODE&problemTitle=%EB%AA%A8%EC%9D%98&orderBy=RECOMMEND_COUNT&selectCodeLang=ALL&select-1=&pageSize=10&pageIndex=2 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 처음 코드가 계속 시간 초과가 나서 계속 고민했던 문제 장애물 블럭들에 대해서는 바뀔 방향들에 대해 배열을 만들어주고, 벽은..
-
[Programmers]위클리 챌린지 6주차: 복서 정렬하기(Python)/SortingProblem Solving/Programmers 2021. 9. 12. 13:11
https://programmers.co.kr/learn/courses/30/lessons/85002 코딩테스트 연습 - 6주차 복서 선수들의 몸무게 weights와, 복서 선수들의 전적을 나타내는 head2head가 매개변수로 주어집니다. 복서 선수들의 번호를 다음과 같은 순서로 정렬한 후 return 하도록 solution 함수를 완성해주세요 programmers.co.kr 파이썬의 람다를 이용해서 정렬을 간단하게 구현 파이썬의 sort함수는 C++과 다르게 기본적으로 stable sort를 지원한다 def solution(weights, head2head): answer = [] result=[[0, 0, weights[i], i+1] for i in range(len(weights))] for i..