오랜만에 풀어보는 문제이다
상당히 쉬운 문제인데 생각보다 애 먹은게 좀 자존심이 상한다. 가장 첫번째로 나오는 타겟 숫자의 포지션과 가장 나중에 나오는 타겟 숫자의 포지션을 담은 벡터를 반환하면 되는 문제이다. 처음에 이진탐색을 이용하여 찾은 타겟넘버 위치를 기준으로 왼쪽에도 같은 숫자가 있으면
항상 어려운 주제들 위주로 공부할려 했던 나한테 현타가 오는 순간인거 같다..어려운 알고리즘들만 공부해서 되게 기본적인 이진탐색같은 문제에 이렇게 애먹는게 너무 슬펐고 내가 약한점들이 뭔지 조금씩 느끼게 되는거같다. nums로 주어진 벡터는 오름차순으로 정렬 되어있지만
다시 풀어보는 새로운 유형의 이진탐색 문제이다. 이 전에 풀었던 문제와 비슷하듯이 특정 index에서 이미 정렬된 벡터가 회전을 했다. 난 이진탐색 문제를 풀때 좀 복잡하게 생각하는 편인데 복잡한 생각을 조금만 더 줄이면 괜찮을거같다. 이 전에 있었던 문제와 마찬가지로
새로운 이진탐색 문제이다. 간단한 문제이지만 머리로만 생각하면 어렵게 느껴질수있는 문제라고 생각한다. 항상 풀어왔던 이진탐색 유형의 문제와는 다르게 target 숫자도 없고 백프로 정렬이 되어있어서 어느 구간과 비교할수있을만한 힌트가 있었던것도 아니였다. 문제를 보고
최근에 풀었던
오늘도 연습해보는 sliding window 문제이다. 투포인터 형식의 문제는 이제 슬슬 많이 풀다보니 익숙해지는듯 하면서도 문제 유형이 조금씩 바뀐다면 아직도 헷갈리는 문제인거같다. 이번 문제는 타겟인 k 숫자보다 낮은 벡터안에 연속되는 작은 subarray의 숫자들
이 전에 풀었던 문제와 정말 유사하다. 타겟넘버가 주어졌고 contiguous subarray 를 찾으면 되는 문제였다. 똑같이 i 와 j 를 시작점으로 하여 j를 증가하고 만약에 sum이라는 변수가 타겟보다 크거나 같게되면 i지점을 줄이면서 계속해서 최소 거리를 구하
예전에 너무 좋아했던 그래프 문제. 그러나 오랜만에 풀어볼려니깐 많이 헷갈렸고 어떻게 시작해야할지도 까먹어서 다른 사람의 코드 답을 보다보니 점점 생각이 났고 나만의 코드로 쓰는게 가능해졌다. 문제의 내용은 직접적으로 이어진 그래프 포인트가 있고 그렇지 않은 포인트가
조합 문제이다
최근 가장 관심을 가지고 풀고있는 backtracking 문제이다. Subsets문제에서 자신감을 얻고 과감하게 도전 해봤지만 문제를 봤을때 어디서부터 시작해야할지 뇌정지가 와서 어버버 하다가 결국 예전에 풀었던 답과 다른사람의 풀이를 보고 나만의 코드로 다시 재해석
개인적인 기준으로 꽤 어렵다고 느껴졌던 문제이다. 어렵다기 보다는 문제가 많이 헷갈린쪽이 더 맞는거같다. 문제가 요구하는 해결방법은 알았지만 구현하는 과정이 많이 헷갈렸고 단순 조합 문제라고 생각하기에는 다른 유형의 문제였다. 풀이를 참고했고 이 문제또한 여러번 다시풀
가로로 만들수있는 n개의 수가 제공 됐을때 만들수있는 모든 가로조합을 리턴해야하는 문제이다. 이런 가로를 만드는 재귀류의 문제에 난 되게 약한거같다. 그렇기에 풀이를 참고했고 풀이 또한 이해가 안되어서 유투브 강의를 참고했다. 가로를 만드는 데는 '(' 열린 가로와 '
백트래킹 문제 폐관수련의 시작을 알리는 문제였다. 리트코드에서 백트래킹/dfs 위주 문제들을 주로 풀었으면서 최대한 이해할려했고 문제를 풀면서도 많이 배우고 있는중이다. 이번 문제는 이어지는 숫자들이 k만큼의 차이를 가지고있고 n만큼의 길이를 가지고있는 모든 조합들을
오늘의 문제는 벡터가 주어졌을때 안에 있는 숫자들이 증가하는 모든 조합을 담은 벡터를 리턴하면 되는 문제이다. 다만, 이 문제에 까다로운 점은 nums 안에 있는 숫자들이 중복이 된 숫자들이란거고 단순한 Combination 함수를 쓰게되면 같은 조합을 두번, 세번 반
사지방에서 문제를 풀면서 즐겁게 했던 문제중 하나인거같다. 이번에도 어김없이 백트래킹 문제를 골랐고 s라는 스트링이 주어질때 중복되는 캐릭터가 없는 가장 긴 substring 으로 최대의 숫자로 분할을 하고 횟수를 리턴하면 되는문제이다. 가장 먼저 생각했던 방법은 df
원래는 백트래킹 문제들만 풀자 했었는데 어쩌다가 문제추천에 나와가지고 봤는데 일단 제목부터 너무 귀여웠어가지고 한번 풀어보자 했던 문제이다. 코코라는 원숭이 추정인 생물체가 있는데 코코는 주어진 시간 h 안에 piles 라는 벡터안에있는 숫자의 바나나를 전부 먹어야 한
카카오 및 다른 코딩테스트류를 보니깐 지금까지 연습했던 Backtracking 및 재귀 방법말고도 도형을 이해하는게 중요하다고 생각했다. 리트코드에서는 오랫동안 건들지 않았던 Matrix 및 Simulation 태그를 사용해가지고 많은 문제들이 있는건 아니지만 그래도
오랜만에 올리는 코딩 문제인거같다. 군대에서 스트레스가 이만저만이 아니다보니 문제에 집중이 잘 안되는기분이여서 몇일동안 눈팅으로만 계속 보다가 드디어 올려본다. 휴가를 나가고싶은데 코로나도 많이 심해져서 고민이 많은 요즘이지만 이 기회를 이용해서 더 많이 배워보고싶다.
군대근황 부터 얘기하자면 요즘 코로나가 너무 심해져서 휴가를 나가느냐 마느냐의 스트레스가 계속 오고있다. 휴..진짜 빨리 제대를 해야하는데 100일이 깨진 순간부터 고비의 고비다 ㅠㅠ최대한 많은 문제를 풀고싶은데도 의욕이 크게 안나는거보면 조금씩 초반에 불타올랐던게 약
어제 빛의경로싸이클 문제를 풀고 계속 이 문제가 머리속에 맴돌았다. 원래 전에 풀려고 했었던 문제중 하나인데 내가 잘 이해를 못했어서 일단 남겨두자 했던 문제중 하나인데 어제 비슷한 유형의 문제를 풀다보니 정말로 풀고싶었다. instruction 이라는 스트링이 주어지
항상 뭔가 쉬운듯 아닌듯 고민했던 문제중 하나이다. 요즘들어 Matrix 와 Simulation 같은 구현문제에 더 관심이 생기면서 Matrix에 대해 내가 모르던 사실이 많았구나 싶었다. 이 문제는 무려 2020년 3/9일날 풀었던 정말 오래된 문제이지만. 다시 초심
개인적으로 많이 어렵고 이해하기 힘들다고 생각했다. 요즘들어 코딩에 있어서 많이 슬럼프가 오는 이유 중 하나도 이 유형의 문제 때문인거 같다. 다이나믹 프로그래밍에 있어서 더 배우고 싶은데 이해는 잘 안되고 내가 풀고싶은데로 잘 안풀리다 보니깐 점점 뇌가 생각하는걸 멈
오랜만에 사회에서 풀어보는 문제이다. 확실히 코딩 문제 푸는 기간을 오래 쉬었던만큼 부족한 부분이 많이 느껴졌고. 어떤 문제를 올릴까 고민을 많이 했는데 이 문제가 되게 좋은 문제라는걸 느껴서 올리고싶었다. 예전에 한참 고민을 많이 했었던 2022 SK ICT Fami
아마 내 블로그에 올라오는 첫 easy 레벨의 리트코드 문제라고 생각하지만 DP에 대한 이해도를 효율 높고 빠르게 터득할수있도록 이런 기초부터 다지면서 문제를 계속 풀어볼 생각이다. Climing Stairs 문제는 계단을 1개 혹은 2개까지 올라갈수있는데 n만큼의 계
예전에 GP에서 풀어봤었던 House Robber 이라는 문제이다. 미국에 있었을때 DP 공부를 좀 했었는데 아마 가장 이해가 안됐었던 유형의 문제중 하나였을거같다. 다시 풀어봤을때도 사실 감이 하나도 안왔고 재귀 과정이 너무 헷갈렸어서 어지러웠지만 DP 유형의 문제들
이 문제 또한 GP 에서 처음 접했던 문제였고, 당시에 문제를 봤을때는 많이 혼란스러웠다. 이 전 DP 문제들을 풀면서도 아직 DP의 개념이 많이 헷갈리는 상태였는데 이 문제를 다시 보자니 또 어지러웠고 어떻게 해야할지 고민이 많이 갔었다. 하지만 문제를 천천히 다시
리트코드에서 상당히 유명한 시리즈인 Jump Game 문제를 풀었다. Jump Game 같은 경우에는 DP를 활용한 시리즈가 굉장히 많은데 이 문제 또한 DP를 활용한 정말 유명한 문제중 하나이다. DP에서 사용되는 Memorization 기법이란 반복되는 계산을 방지
다시 한번 풀어보는 Jump Game 문제이다. 사실 이 모든 문제들은 GP에서 한번씩 봤던 경험은 있었지만 전부 다 이해하지는 못했었고. 애초에 컴퓨터나 주변환경이 많이 다르기때문에 조용하게 집에서 큰 화면이랑 좋은 노래 들으면서 풀고있기 때문에 훨씬 더 집중이 잘되
BFS 문제를 어떤것들 풀까 하고 보던중에 발견한 문제이다. 언뜻보기에는 간단한 문제지만, 난 어느부분에서 막혔었고 배운점들도 있었기에 적어본다. 문제 내용은 되게 간단하다. 사각형 밑에 가장자리에 도달하기까지 숫자들을 지나게 될텐데 이 경로상에 절대값중에 마지막 숫자
리트코드 그래프 문제 추천리스트에 있었던 미로에서 가장 가까운 탈출구로 도망가야 하는 문제다. BFS유형의 문제는 내가 볼때 두가지의 패턴으로 나뉜다. 하나는 일반적인 Queue 자료구조를 이용한 가능한 모든 경우의 수 찾기, 그리고 Priority_Queue 를 이용
기본 개념에 충실하게 배우기 위한 기초적인 DFS 문제를 풀어보았다. n만큼의 컴퓨터들이 존재하고 이 네트워크들이 서로 연결이 되있다고 했을때 가장 최소한의 선을 움직여서 모든 네트워크가 연결이 될수있게 하면 되는 문제이다. 혹시라도 그것이 불가능하다면 -1을 리턴.
이런 유형의 문제를 플지 몰랐는데 가장 최근에 나온 문제 목록중에 재밌어 보이길래 풀어보았다. 언뜻보면 평범한 Matrix문제같고 혹은 BFS같은 유형의 문제를 떠오를수도 있었겠지만 이 문제는 BFS형태로 풀기에는 Matrix 크기가 너무 크고 시도할려고 했으면 무조건
원래 이런 종류의 문제를 잘 올리는 편은 아니지만 오늘만큼은 좀 더 올리고싶었다. 이 문제는 자칫 하면은 어떤 유형일지 모를수도 있는 타입인데 잘 읽어보면은 binary search 의 특성이 많이 보이는 질문이다. 먼저, m이라는 공의 개수가 주어지고 position
꽤 새로운 유형의 문제를 풀었다. 그래프나 Matrix에서 탐색하는게 아닌 n이라는 노드가 주어졌을때. 색이 다른 Edge 벡터에 각 노드가 배치되어있는데 Directed Graph 이고 각 노드가 이어질려면은 연결되있는 edge에 색이 달라야한다. 즉, 빨강 색 라인
오늘은 개인적으로 꽤 재미난 문제를 풀었다. 굉장히 낮은 acceptance rate 때문에 겁을 먹었지만 일단 들어와서 천천히 풀어봤다. 문제는 x 지점까지 a라는 전진 점프와 b라는 후방 점프가 있을때 가정 적은 점프에 수로 x까지 도달하는 포인트를 리턴해야 하는
문제를 푸는 방향을 좀 더 넓혀 보고자 Sorting 태그에서도 문제를 종종 풀어보기로 했다. 항상 자신있다고 생각했던 부분이기도 했지만 막상 새로운 문제를 봤을때 항상 좌절했기에 이렇게 기록을 남기고 싶었다. 각 벡터에 최대 인원인 capacity, 그리고 각 벡터에
오늘은 정말로 오래전에 나온 리트코드 문제이고 또 나도 굉장히 오래전에 풀어봤지만 잘 기억이 안나는 문제를 풀어보았다. 이 문제가 좀 어렵게 느껴지는 이유중 하나는 통과 해야하는 테스트케이스가 무려 987 개나 있다는 점이었다. 당연하게 무슨 이런 테스트 케이스가 있지
Sorting 유형의 문제를 찾아보던중 꽤 재밌어 보인다고 생각했던 문제여서 풀어보았다. 일단 내가 처음 이 문제르 봤을때 들었던 생각은 좀 많이 까다로웠다. nums1의 permutation 값에서 nums2에 있는 원소들을 비교했을때 가장 큰 원소를 얻을수있는 조합
오늘은 BFS 관련된 문제를 풀어보기로 했다. 이 문제는 프로그래머스에 나와있는 문제와 굉장히 유사했으며 실제로 Word Ladder 이라는 리트코드 하드문제와 동일한 문제다. 사실 하드 레벨의 난이도라고 하기 조금 민망할정도로 어려운 문제는 아니다. start 와 e
매일 아침 모닝 루틴처럼 어떤 문제를 풀지 정하고 푸는 연습을 하는중이다. 매일 그래도 두 문제 씩은 풀려고 하는중이지만 아직은 어려운게 더 많은거같다. 오늘의 문제는 Sorting 문제이고 꽤 많은 투표를 받은 좋은 문제인가 싶어서 풀어보았다. xStart 와 xEn
리트코드 추천으로 처음 접하게 된 문제이다. 난이도가 Hard 여서 상당히 걱정을 하고 문제를 읽게 됐는데 생각보다 할만해 보였고 Memoization 을 이용한 DP 방식으로 쉽게 풀수있을거라고 생각했다. Matrix가 주어졌을때 각 원소를 탐색하면서 원소가 커지는
정답률 42프로? 정도의 미디엄 문제이다. 오늘도 모닝루틴 처럼 문제를 찾던 와중에 높은 투표를 받아서 풀어본 문제다. n + m 의 주사위를 던졌을때 기록을 해둔 rolls 벡터에서 n 만큼의 주사위 기록이 없다. 그렇지만 원래 벡터안에 있었던 평균을 구한 mean
리트코드 미디엄 매트릭스 시뮬레이션 문제를 풀어보았다. 이 전에 풀었던 Spiral Matrix I, II 시리즈에 경우는 그리드가 이미 주어졌고 회전 방향에 따라서 순서를 바꿔주고 direction 에 따라서 top,bottom,left, 그리고 right을 조절 해
오늘도 리트코드 추천문제 중 하나인 문제를 풀어보았다. 문제는 꽤 간단한데 strs 라는 벡터안에는 0 과 1로만 이루어진 스트링이 있다. 그리고 m 과 n 은 0 과 1 이 허용되는 최대의 숫자를 의미하는데. 이 허용범위 안에서 가장 길게 만들수있는 subset의 길
오랜만에 풀어보는 Backtracking 태그의 문제이다. 예전에 군대 있을때만 해도 한참 이 주제에 깊게 빠져들어서 백트래킹 문제들만 풀었는데 요즘들어 Greedy, Sorting, DP, 시뮬레이션 등등 다양한 문제들에 눈이 더 가게 되는거같다. 문제는 matchs
요즘 계속 백준 문제들만 풀다가 오랜만에 리트코드 문제를 좀 봤다. 해당 문제는 매주 주말마다 나오는 컨테스트 문제들중 괜찮아 보여서 풀어보기로 했다. n이라는 노드가 주어지고 roads 가 있을때 각 노드에 가중치 (weights) 를 임의로 줘서 roads 에 적힌
요즘은 하도 백준 문제들만 풀어봤기에 오랜만에 리트코드로 넘어가서 괜찮은 문제가 없나 보던 와중에 재밌어 보이는 문제를 한번 풀어보았다. 솔직히 설명 자체는 정말 어질 어질 하기때문에 몇번씩 다시 읽어보고 예시 또한 몇번씩 봤어야지 이해를 했던 문제였다. 첫번째 예시에
이미 내 블로그에는 Spiral Matrix 시리즈가 1과 3을 다 끝내놨는데 너무 뜬금없게 2시리즈가 올라온거에 좀 의아해 할 수도 있을거같다. 그런데 앞으로 볼 코딩 테스트를 대비해서 이런 Matrix 문제도 다시 리마인드 할겸 풀었던걸 다시 풀었는데 생각보다 잘
최근에 봤던 코딩 테스트에서 봤던 문제랑 가장 유사하다고 생각해서 생각난김에 다시 풀어보았다. 최근에 백준에서 연습을 할때도 대부분 시뮬레이션을 조합한 BFS 방식을 많이 쓰다보니깐 나도 모르게 그게 되게 편해지고 익숙해져서 그래프 문제를 봤을때 BFS 옵션부터 생각하
문득 구현 문제를 찾던 와중에 내가 원하는 스타일에 구현 문제가 안나와서 헤매고 있었다가 몸 풀기로 오랜만에 리트코드 문제를 풀어보고 싶었다. 문제 자체 정답률이 70을 넘어가기에 쉬운 문제이겠다 싶어서 문제를 읽고 있었는데...이걸 어떻게 풀지? 하는 생각이 들었다.
수업 준비 하던 와중에 우연히 발견한 문제고 학생들한테는 안줬지만 내가 풀어보고 싶어서 오늘 끝내본 문제다. 문제를 읽는 순간 느꼈는데 정말로 이런 유형의 문제가 한국 기업 사이에서 빈번히 나오는 구현 + 정렬 문제다.정말 이런 문제를 찾고 싶었는데 태그에 Counti
지나가다가 우연히 봤던 문제를 풀어보았다. 오랜만에 풀어보는 ASCII 테이블 관련 문제였고 헷갈리는 부분이 몇가지 있었지만 그래도 끝내 잘 풀었다. s 라는 문자열이 주어지고 shifts 라는 벡터가 있을때 0 인덱스부터 시작하는 shift의 숫자만큼 앞에 문자를 계
최근에 비슷한 문제를 풀어보고 시리즈 2번이 나왔길래 한번 풀어보았다. 문제는 첫번째 시리즈와 굉장히 유사했지만 이번에는 뒤로도 글자를 shift 할 수 있는 direction 이라는 요소가 추가되었다. 이 문제는 TLE 를 되게 조심해야 하는 문제인데. shifts
여러 방면으로 문제를 다양하게 풀고 싶어서 노력하는 중이다. 사실 이 문제는 입대하기 한참 전에 이미 풀어 보았던 문제고 리트코드 안에서도 꽤 유명한 투포인터 문제이다. 3가지 숫자를 고르고 그 합이 0 이 되면은 답 리스트에 포함시켜야 하는 간단한 문제이지만 조금 까
오랜만에 올려보는 글이다. 추석 연휴가 지나고 여러곳에 지원서를 넣느라 많이 연습을 못한게 느껴진다. 이제 결과를 기다리는 만큼 다가오는 코딩 테스트를 위해 공부 할 예정이다. 꽤 흔하게 보이는 Intervals 문제를 몸풀기로 풀어봤고 오랜만에 푼만큼 좀 고전했었다.
분명히 쉬운 문제인데 푸는 방법을 잘못 선택해서 시간을 좀 날린 문제라고 생각한다. Directed 노드가 있을때 몇가지의 노드 노선을 변경시켜서 모든 노드가 0번째 노드로 향할 수 있게 만들면 되는 문제이다. 여기서 내가 Union Find 형식으로 답을 찾아내려고
순수 그래프 문제를 풀어보았다. 사실 이런 유형을 보면은 당연히 그래프 탐색 알고리즘이 생각나지만 아니었단거에 놀랐다. 서로 연결된 그래프가 주어졌을때 두 노드가 서로 연결하고 있는 간선(edge) 의 최대치를 반환하면 되는 문제이다. 첫번째 예시같은경우 0번째 노드는
리트코드에서 꽤 유명한 문제 중 하나인 N-Queens 문제를 풀어보았다.예전에 이 문제를 봤을때는 Hard 난이도를 보고 일찍 포기했지만 왠일인지 좀 문제를 풀고 싶은 마음이 들었다. 읽자마자 이 문제는 모든 경우의 수를 탐색해야 하는 Backtracking 문제라는
문제를 찾던 와중에 투포인터/슬라이딩 윈도우 문제를 발견해서 풀어보았다. 슬라이딩 윈도우 유형의 문제는 굉장히 많지만 조금 특이하고 괜찮게 봤던 문제다. t가 속하는 모든 s의 substring 중에 가장 짧은것을 뽑아내면 된다. 그리고 이 문제를 풀기 위해서 중요한
마지막으로 코테 준비하면서 문제 풀었던게 10월 쯤이여서 진짜 놀랐다...시간이 이렇게 흐르다니.. 확실히 취업하면은 좀 소홀해 지는거는 사실인가 보다. 그래도 최근에는 나름 자극도 받아서 내가 정말 즐기고 좋아했던 리트코드 문제 위주로 DP랑 트리 / 그래프쪽 문제를
퇴근하고 여유가 많은데 운동도 갔다오고 그냥 멍하니 있다보니깐 시간이 너무 빨리가서 현타도 자주온다. 그래도 새로운 기술을 회사에서 계속 배우고 있으니 백엔드 기술은 조금 뒤로하고 개인역량을 키우기 위해 리트코드에서 문제 패키지로 만들어준 Ultimate DP Stud
House Robber 문제는 정말 유명한 DP 문제이고 리트코드 안에서도 여러번 풀어봤다. 그런데 지금까지 나는 Memoization 방식으로 풀어봤고 이번에 문제집에서 줬던 가이드 순서대로 풀기 시작하니 되게 전보다 이해가 빨랐고 문제도 쉽게 풀었다. 이 문제에 핵
요즘 DP 문제들을 하나씩 정복해 나가는 중이다. 먼저 가장 쉬운 1D 배열에 디피를 마스터하고 그 다음에 2D 배열 디피 그리고 그래프 디피를 마스터할 생각이다. 프리미엄 계정도 생각 중...일단 하루에 2문제 혹은 3문제 풀 생각이었는데 생각보다 진행 속도가 느려서
이 문제도 내가 기억하기로는 군대를 막 전역하고 풀었던 문제다. 그때도 Memoization 방식으로 풀었지만 사실 그렇게 잘 이해는 못했다. 다시 문제를 도전하는 느낌으로 DP 테이블을 짜고 풀어봤는데 훨씬 이해가 잘되는 기분이다. 결론적으로 많이 헤맸고 못풀어서 답
Jump Game문제도 오래전에 풀어봤지만 DP 테이블 방식으로는 처음 풀어보는 문제다. 문제를 풀면 풀 수록 DP와 관련된 새로운 지식을 얻게되는거 같아서 매우 신기한거같다. 지금까지 풀었던 House Robber 같은 문제들은 선택 혹은 선택하지 않는다, 그리고 구
추억이 있는 문제다. 첫번째 시리즈의 목적이 해당 index에 도달이 가능한지에 대한 여부를 묻는 문제였다면 이번 문제는 해당 index에 도달이 가능한 가장 최소한의 점프를 물어보는 문제다. 이 문제를 생각할때 고민이 많이 들었는데 뭔가 엄청 DP로 최적화 하는 느낌
HouseRobber이랑 꽤 비슷한 패턴을 느껴서 천천히 풀어봤고 바로 맞출 수 있었다. 결국 이 문제는 겹치는 구간에서 가장 최대값만 남기면서 가면 되는 문제이다. 그러기 위해서는 바로 전까지 이어지는 가장 큰 값과 현재를 더할것이냐 아니면 전 값을 버리고 내 현재
DP문제를 계속 풀다보면은 솔직히 헷갈리는 부분들이 더 많고 가끔은 이게 왜 DP지? 하는 류의 문제도 있다. 가끔은 2중 룹으로 DP를 다뤄야할 때도 있고 가끔은 한번의 룹으로 모든걸 기록할 수도 있다. 이번 분제 같은 경우는 한번의 룹으로 모든걸 해결할 수도 있지만
솔직히 계속 풀었던 DP문제 유형중에서도 가장 어려웠다고 느꼈다. 그래서 답을 참고했는데 다른사람들은 DP 방식으로 푼다기 보다 좀 더 Greedy하게 푸는 방향으로 풀어서 내가 원하는 풀이 방식을 계속 찾다가 이번 풀이가 가장 괜찮아 보였다. 이 풀이를 보고도 이해하
개인적으로 되게 어렵다고 느꼈던 문제였다. 아무리 봐도 패턴을 찾기가 힘들었고 전에 풀었던 DP문제랑은 다르게 엄청 색다로운 패턴으로 매번 다른 값을 비교한다고 생각해서 정말 어떻게 해야할지 감도 안왔어서 답을 참고했다. 문제는 답을 보고도 뭔지 몰라서 한참 어지러웠다
머리가 굳은건지 DP문제를 계속 풀어도 쏙쏙 와닿지는 않아서 큰일인거 같다. 다만 계속해서 노트에 적다보니깐 뭔가 답을 확인 했을때도 완전히 모르는건 아니고 아쉽네 라고 생각하는 수준까지는 와서 다행이다. 이 문제는 가장 많은 수익을 내야하는 한번에 루프로 DP식 계산
요즘 들어 코딩테스트 관련해서 현타가 제대로 온거같다...진짜 취업 못했으면 아마 지금쯤 엄청난 현타가 왔을거 같아서 너무 무섭다. 내 현실에 그래도 다행이라고 생각한다. 퇴근하고 와서 한 문제라도 푸는게 목표인데 요즘은 문제를 도전하려고 하면 자꾸 답 부터 찾으려고
새로운 DP 문제를 풀었다. 확실히 저번 문제에서 오랜 시간동안 이해하려고 노력했고 원리를 이해하다보니 이번에는 답을 보지 않고 노트에 적으면서 문제를 잘 풀 수 있었다. 이번 문제는 저번 Cooldown 문제보다 조금은 더 쉽다고 느껴졌다, 왜냐하면은 특별한 조건 없
비교적 쉬운 문제를 풀었고 어렵지는 않았지만 그냥 푸는 방식이 전이랑 조금 달라서 이런 방법도 있구나~ 꺠달았던 문제다. 이 문제는 i-1 그리고 i-2의 차이가 같다면은 카운트를 늘리는 문제다. 이 문제가 Stock 문제랑 뭐가 다를까 하고 계속 생각해봤는데 결국 겹
DP문제가 조금씩 비슷한 패턴의것들은 조금 눈에 보이는거 같기도 하지만 아직 어려운거 같다. 이번 문제는 싫어요 숫자도 많길래 별로인 문제인가 하고 풀어봤는데 확실히 좀 까다로운 조건들이 꽤 있었다...숫자가 주어질때 이 숫자들이 알파벳으로 변환될수 있는 숫자면은 그
그래도 꽤 재밌어보이는 DP 문제를 풀었다. 확실히 DP로직을 Matrix 안에서 짜는거랑 그냥 썡으로 생각하는거랑 많이 차이가 나는거같고 이번에 풀었던 문제는 쉬운 편에 속하는 DP 문제였다. 첫번째 줄부터 시작해서 3가지 방향으로 뻗어가며 믿으로 갈 수 있는데 이
바로 전에 풀었던 문제와 굉장히 비슷한 유형이였다. 로직은 똑같이 각 Row에 최소값만을 집어 넣는것. 그런데 여기서 좀 달랐던거는 이번에는 모양이 피라미드 형태고 배열이 사용된게 아니라 컬렉션 프레임워크가 사용되었다는 점이다. 확실히 배열만 사용하다가 컬렉션 프레임워
최근에 너무 쉬운 DP 문제들만 했던거 같아서 어려워 보이는 문제를 골라서 풀어봤다. 정말 엄청 유명한 문제여서 저번에도 풀었던 기억이 있지만 그때는 다르게 풀었고 꼭 DP를 활용해서 풀고 싶었는데 일단 첫 시도에서 뻘짓을 너무 많이 해서 결국 개털렸다. 꽤 많은 시간
또 다른 유명한 DP문제를 풀어봤다. 바로 전 포스트에서 Palindrome 을 DP방식으로 찾는거는 또 한번의 룹으로 Palindrome을 줄이는것으로 시작되었다. 그리고 그 방법은 바로 i+1 j-1 범위에서 Palindrome이 완성됬다면 사이에 있는 구간은 모두
Sorting 문제들을 자바로 풀면서 내 실력의 부족함 + 얼마나 C++ 언어가 편했나를 세삼 깨달았다. 자바를 사용하는 환경과 C++을 사용하는 환경은 분명히 다른점이 훨씬 많겠지만, 그래도 현 시점에서 내 C++과 Java의 역량을 맞춰주기 위해서 약간의 불편함을
프로그래머스에도 존재하는 좋은 문제이다. 내가 생각보다 자바가 이제 꽤 익숙하게 사용하는거 같아서 기분이 좋다. 물론 Stream() 같은 부분이 아직까지도 헷갈리는 부분이지만 계속 연습하다보면은 나아질거 같은기분이다. 이 문제는 beginWord가 주어지고 최소한의
예전에 군대를 전역하고 풀었던 문제를 다시 도전해봤다. 그렇게 어려운 문제는 아니고 그냥 모둔 connected 그래프를 탐색해주고 연결이 되지 않은 그래프의 숫자를 가지고 오는 문제다. 이 문제를 어렵지 않게 풀었음에도 이렇게 다시 올리는 이유는 자바로 풀이를 했을때
리트코드에서 재미난 문제를 풀었다. 마지막으로 풀었던 기록을 보니깐 2020년이었는데 입대하기 전에 풀고 지금 다시 풀어봤다. 분명히 이 문제를 풀때 힘든 기억이 있지만 어렴풋이 기억이 나서 풀려고 했는데 테스트 케이스가 너무 쉽게 풀려서 내가 왜 고생했지 라는 생각으
요즘 한참 코딩 테스트 보다 더 업무와 연관 있는 데이터 엔지니어링 지식들을 공부하다보니 코딩 능력이 많이 약해진것만 같다. 그래서 리트코드에 추천으로 나온 문제를 풀어봤는데 생각보다 많이 헤맸어서 좀 자극을 받을 필요가 있다고 생각했다 ㅠㅠ. 이 문제는 최소한의 0을
친구의 프리미엄 계정을 빌려서 문제를 풀고 있다 재밌는 문제를 발견했다. Distinct Islands, 즉 독립적인 섬의 숫자를 출력하면 되는 문제다. 그냥 단순하게 DFS를 사용해서 섬을 출력하는게 아니고 독립적인 섬의 "모양"이 같다면 그 섬들은 하나의 섬으로 취
몸도 풀겸 좀 가볍게 문제를 풀어봤다. 이 문제는 예전에 hit hot dot cog 이런식으로 단어 찾기 문제랑 그냥 똑같은 문제다. 단어를 하나씩만 바꿀 수 있다고 할때 bank안에 있는 단어로 변환 후에 BFS 탐색으로 endgGene 까지 도달하면은 쉽게 찾을
본사 대기를 하면서 조그만한 노트북으로 풀려니 목에 담이 왔던 문제다. 사실 이 문제는 프로그래머스에서 4 \* 4 Grid 안에서 같은 그림이면은 터지게 되고 위에서 아래로 떨어지는 구조의 문제와 정말 같았다. 다만, 차이점은 이번에는 4 \* 4의 특정 window
오랜만에 리트코드 문제를 풀어봤다. 추천 문제들을 다 풀어보는게 목표이고 천천히 하면 좋을거같다. 이 문제는 숫자가 순차적으로 나열된 최대 길이를 반환해야 하는 문제인데 조금 어렵게 나온건 O(n) 시간으로 풀어야 한다는 것이었다. Sort() 같은 함수는 사용하면 안
좀 새로운 문제 유형이다. 일단 이 문제는 배열안에 있는 원소는 변경하면 안되고 다른 자료구조를 사용하면 안되는 문제다. 그렇기 때문에 Map이나 Sorting이 안되기 때문에 어떻게 풀어야 고민하던 와중에 이분탐색 문제 유형이란것을 보고 답을 참고하면서 고민했다. 반
오늘도 Array 문제를 풀어보았다. 분명히 쉬워 보이긴 하는데 문제는.. O(n) 으로 풀어봐에서 많이 걸렸다. 무식하게 푸는 방법으로 O(n^2) 방식으로 풀었다면은 가장 Sorting 이 필요한 구간을 알 수 있었겠지만 O(n) 은 다른 방식으로 접근 해야했다.
꽤 재밌는 문제를 풀었다. input 과 words 벡터가 주어졌을때, input (s) 로 만들 수 있는 단어 개수를 리턴하면 된다. 그런데! 여기서 중요한 점은... 단순하게 s로만 조합하면 되는게 아니라 s가 가지고 있는 원래 순서로 조합할 수 있어야 한다. "a
추천으로 받은 좋은 문제다. 처음에 너무 다른 접근을 했어서 상당히 애를 먹었고, 풀어 본 후에 오답인걸 확인하고 답을 참고해서 다시 풀었다. 이 문제는 좀 넓게 보고 해석할 줄 알아야 한다. 메트릭스에 나와있는 숫자가 이동하려는 숫자보다 크다면은 물이 흐를 수 있다
어렵지는 않은 문제다. 다만 생각은 좀 해야한다. 만약에 문제가 특정 범위 안에서의 어떤 구간을 원한다면은.. 그 범위내의 구간이 아니라 그 범위 밖에 구간을 보고 탐색하는게 좋은 방법일거 같다.
되게 인상깊은 문제를 풀어봤다. BFS 문제인데 4방향으로 0이랑 가장 가까운 거리를 담는 문제다. 단순하게 BFS를 생각하기에 좀 고려해야 하는 부분이 있다. 만약에 4방향에서 0이 다 있다라면은 쉽겠지만 1이 여러번 겹쳤을때는 같은 구간을 계속 탐색 해야한다는 안좋
바로 전에 풀었던 문제와 상당히 비슷한 결이다. 이번에는 0이 물이고 1이 지상일때 가장 지상이랑 멀리 위치한 물을 찾으면 된다. Shortest Path 문제는 보통 BFS 류가 많이 사용되는데..이 문제와 전에 문제에 특징은 한 포인트에서 찾는게 아니고 여러 포인트
그래프 탐색 문제를 풀면서 느낀점.. Shortest distance 와 Shortest Path 는 결이 좀 다른거같다. 여러가지 포인트에서 어느 한지점에 도달하거나.. 아니면 모든 경로에서 동일하게 움직여서 겹칠 필요가 없다면은 visited 배열을 정말 방문 목적
cyclic 그래프 문제를 한번 내가 알고 있는 지식 선에서 풀어봤다. 테스트 케이스를 다 통과하긴 했는데.. 너무 시간이 오래 걸렸어서 굉장히 찜찜하다. 이 문제는 단순하게 현재 그래프에서 싸이클이 생기면 끝나는게 아니라 현재 그래프에서 연결된 모든 그래프에서 싸이클
굉장히 좋은 문제를 풀었다. 그래프 문제를 연습하면서 느낀건데..난 진짜 하나도 모르는 바보였다. 다익스트라가 뭔지는 알아도 제대로 된 이론도 몰랐고. 벨만포드, 플로이드 등 너무 모르는 알고리즘이 많은거같다. 아래는 내가 처음 적었던 코드였는데 당연히 틀렸다. 왜 틀
본격적으로 DFS / BFS 를 넘어서 완전 탐색, Backtracking 류의 문제에 도전 해보고 있다. 일단 기본적으로 combination 과 permutation의 구현 정도는 쉽게 할 수 있다. 다만, Backtracking 을 내가 정말 알고 있나? 에서 이
내 테마에 조금 어긋나긴하지만 그래도 바이너리 서치 문제를 한번 풀어봤는데 재밌었다. target 이 주어졌을때 가장 첫번째 위치와 가장 마지막 위치를 return 하면 되는 문제다. 만약에 없으면 -1,-1을 리턴하면 된다. 이 문제에서 가장 먼저 첫번쨰 target
오늘 코테 문제를 풀다가 갑자기 머리 속에서 스쳐서 풀어본 문제다. 각 index에 있는 숫자가 내가 점프할 수 있는 max 숫자일때 마지막에 닿을 수 있으면 true 를, 아니면 false 를 리턴 해야한다. 자연스럽게 bfs 탐색이 생각났지만 생각해보니 dfs 탐색
좀 아쉽게 생각만 하고 못풀어서 답을 참고한 문제다. 이 문제는 투포인터 타입의 문제였는데 단순하게 target 과 source 를 n^2로 탐색하면은 절대 못풀고 target 을 한번 루프 돌면서 source에서의 투포인터 관계를 만들어야 했다.만약에 현재 내가 보고
복습 차원에서 예전에 본사에서 풀어봤던 문제를 다시 경험했다. 확실히 코딩 실력이 그래도 감이 돌아오고 있구나를 조금 경험했다.처음 풀었을때만 해도 이거는 무조건 이렇게 풀어야해! 생각했지만 로직을 생각하니 이렇게 푸는게 더 깔끔하고 좋을거 같다는 마음이 들었다. 처음
sliding window 문제에는 항상 비슷한 유형의 코드를 사용하는데 보통 문제가 최소, 최대의 구간을 물어본다. 여기서 중요한거는 조건에 맞는 부분일때는 꼭 변수에 저장해주고, 초과되는 부분이 있다면 다른 while 룹을 사용해서 내가 탐색하고자 하는 부분의 범위
원래 리트코드는 좀 가볍게? 푸는 목적으로 많이 사용했는데 이번 문제는 시뮬레이션이 섞인 구현을 좀 섞어야 하는 문제 였어서 기록을 남겨본다. workers 와 bikes 의 좌표가 있다고 할 때 둘의 manhattan distance 를 구하고, 각자 worker 한
투포인터 문제를 풀어봤다. 투 포인터의 기본적인 템플릿은 while 문을 두번 사용하면서, 첫번째 while문은 배열을 읽는 목적, 그리고 두번째 while 문은 문제가 원하는 최소 조건을 만족하면서 가장 길거나 가장 짧은 구간을 지속적으로 업데이트 시켜준다 두번째 w
역시 리트코드 하드 문제는 생각을 많이 하게 만든다. ldru 방향으로 최소 거리를 찾는 문제인데 예전에 카카오 코딩테스트 문제가 생각났다. 비슷한 결의 문제 같긴해서 다음에 시간 내서 풀어볼 예정이다. C++ 로도 똑같은 로직을 적용해서 풀어봤는데 내꺼는 잘 안되어서
자바의 감을 잃고 싶지 않아서 코딩 테스트 문제를 너무 어려운 문제를 제외하고 자바로 풀이 해보려고 한다. 여기서 배운거는 hashMap을 initialzie 하는 방법과 StringBuilder 을 통해서 문자열을 만드는것을 빠르게 실습했다.
원래는 난이도 easy 등급은 풀지도 않았는데. 자바 문법에 더 익숙해지는 시간이라서 헷갈렸던 함수 개념이 생각나고 그랬다. C++에서도 map 을 만들 때 value 값으로 vector 나 set 을 사용하기도 하는데 Java 에서도 똑같은 상황에서 이 함수를 사용한
드디어 consecutive 시리즈 III 을 풀어서 다 끝냈다. 사실 이 문제도 평범한 투포인터 문제인데 문제 맥락을 잘 못 이해해서 조금 시간이 걸렸다. 투포인터의 핵심은 언제 start 포인터를 줄여야 하는지 결정해야 하고 이 문제에서는 k 가 0 이하일때 움직이
분명히 풀어 본 기록은 있는데 언제 풀었는지 가물가물 해서 기록을 보니 2020년에 풀어봤다. 2020년의 코드는 내가 어떻게 할 줄 몰라서 다른 사람의 코드를 보고 적었는데 몇년이 지난 지금은그냥 보고 머리 속에 구성하고 슥슥 풀었다. 사실 이게 베스트 답은 아니지만
오랜만에 풀어보는 리트코드 프리미엄 문제다. 사실 문제를 읽고 이걸 어떻게 푸는거지? 하고 감이 잘 안온 문제 중 하나다. 뭔가 Stack 을 사용하는 것 같기는 한데...하면서 고민해보다가 결국에는 editorial 을 한번 보고 참고 했고 깨달음을 얻었다. 이 문제
Daily 문제로 풀어봤다. 어려운 문제도 아니고 valid parentheses 문제는 stack 형식으로 많이 풀어봤지만 조금은? 다른 느낌으로 풀어봤다. 최소한의 parentheses 를 만들어야 하기 때문에 valid 가 아닌 괄호는 다 버려야 한다. 알파벳은
쉬운 문제인데 너무 이상하게 시간 낭비를 했다. 이 문제는 읽자마자 String 과 Greedy 유형이라고 생각했다. Lexicographically smallest 면은 사전 상 가장 먼저오는 캐릭터가 무조건 앞에 와야 전체적인 결과에서 이득이라 생각했기 때문이다.
오늘 컨테스트 문제를 풀다가 머리가 좀 띵했던 문제였다. 문제 설명 자체는 쉬웠고 quereis 벡터 안에 오는 숫자의 Range 안에 Special Array 가 생성이 되는지를 물어본 문제인데 당연스럽게도 Brute Force 로 풀면은 TLE 가 나오는 문제다.
Online Assessment 문제를 풀다가 좋은 문제를 발견했다. 난이도가 조금 있는 편이라서 헤맸는데 프로그래머스에서 카카오 문제를 풀 때랑 유사하게 접근해서 풀어봤다. 오랜만에 Backtracking 개념이 나왔고, 문제를 읽자마자 이건 시간 개념 + 모든 조합
예전에 한참 못풀던 문제였는데 Topological Sort의 개념을 조금씩 이해하다보니 오늘 드디어 내 힘으로 풀 수가 있었다. 이 문제는 destination 으로 향하는 모든 노드의 path 가 존재하는지를 물어보는 문제였다. destination 으로 가는 pa
KoKo eating banana 문제랑 굉장히 유사하게 느껴졌다. 이런 문제에서는 최소의 시간이 걸리는 구간을 찾기 위해서 binary search 를 통해서 얻는게 가장 좋다. 특정 시간을 얻게 되면 그 시간대로 search 를 해주고 얼마나 많은 Bouquets
Sliding window 문제를 풀었다. 솔직히 쉬운 문제인데 생각보다 너무 헤맸다. 이유는... 문제를 잘 못 읽었다. Sliding Window 패턴은 내가 많이 풀어봤을 떄 아래와 같다. 요구하는 조건 체크 (이 경우, grumpy 가 1일 때 뭐를 해줘라) 그
문제 자체는 전에 풀었던 Search in Rotated Sorted Array 랑 크게 다르지 않은데 시리즈로 되어 있는 문제는 이상하게 긴가민가 하게 다르게 내서 좀 어렵게 느껴지는 거같다. 전 시리즈랑 동일하게 pivot 을 찾은 다음에 target이 그 rang
상당히 재밌는 문제를 발견했다. 문제를 읽으면서 어려웠던 점은 이게 왜 interval 문제에 속하지? 에 대한 질문이었는데 자세히 읽다보니 이유를 알 수 있었다. 서로 겹치는 구간에 경우 Bold 태그를 같이 넣어줘야 하는데 이 겹치는 구간을 구하는 것이 interv