문제 풀러 가기!전형적인 DP 문제로 입력값이 많기 때문에 구간 마다 더하면 안됩니다. 처음 배열을 입력 받을 때 해당 배열의 누적합을 기록해준 다음 이를 이용하여 구간합을 구해주어야 합니다. 0번 index부터 차례로 하나씩 누적시키면 연산 횟수는 최대 10만번이기
2468 안전 영역 풀러가기!안녕하세요. DevJunku입니다.오늘은 2468 안전 영역 문제를 풀어보려고 해요. 가장 대표적인 BFS 문제이구요. 상 하 좌 우 델타 이동을 활용한 Queue를 이용하면 금방 문제를 풀 수 있습니다.문제가 어려운 편은 아니었습니다. 요
문제 링크최소 피로도와 소모 피로도가 주어졌을 때 얼마나 많은 던전의 개수를 지날 수 있는지 묻는 문제였습니다.처음에는 그리디인가 하고 접근했었고, 입력 값을 정렬한 후 문제에서 주어진 피로도 k가 0보다 작은 구간이 될때 끝내려고 했는데, 그건 아니었습니다. 그래서
문제 풀이 아이디어는 Python 풀이와 같습니다. 단지.. 지금 약간 혼동이 오는게,,, 자바와 비슷한 코드로 작성했는데, 코틀린은 시간 초과가 나고 자바는 통과되네요.다른 방식을 생각해야 할 것 같은데,,, 좀 어렵네요.코딩 고수님들 어떻게 풀어야 하는지 알려주세요
올해 초에 카카오 인턴을 봤었고 그때도 풀었던 문제입니다. 어려운 문제는 아니었습니다. 누구나 쉽게 풀 수 있는 문제입니다.단지 복습할 겸 문제를 다시 한 번 풀어봤어요. 다른 분들도 다들 쉽게 접근하셨을 겁니다.문제의 아이디어는 숫자에 대한 dictionary를 먼저
Python에서 풀었던 아이디어와 동일하게 접근했습니다. 단지 문법만 다를 뿐 안의 프로세스는 동일합니다.아직 코틀린이 익숙하지 않은지 저는 이렇게 푸는게 더 편하네요...프로그래머스 IDE에서 제공하는 코드가 무슨 의미인지는 알지만, 아직은 이게 편합니다. 함수..형
키패드 누르기 풀러가기!난이도: lv 1문제는 그렇게 어렵지는 않았습니다. 그냥 위치 정보를 dictionary에 입력한 뒤에 문제에서 주어진 조건대로 주면 끝입니다. 음.. 근데 제가 풀 코드가 좀 마음에 안 드는게 pop()을 사용했다는 점입니다. 시간복잡도 측면에
문제풀러가기!느낀점문제 설명 최근 누적합 문제를 많이 풀고 있습니다. 그런 류의 문제가 요새 좀 많이 등장하는 것 같더군요. 문제는 되게 단순합니다. 하지만, 생각없이 코드짜면 바로 시간 초과나는 문제입니다.문제 아이디어당연히 누적합을 구해야합니다. 하지만, 나머지에
문제풀러가기!이 문제는 그렇게 어려운 문제는 아니었습니다. 그렇기 때문에 엄청 쉽게 접근했습니다.문제 풀이 포인트문제에서 주어지는 2개의 배열 중에서 마지막 주요소의 가격은 어차피 사용을 못합니다. 그래서 그냥 데이터 받고 pop해주었습니다. 어차피 쓸모 없으니까요!
문제 풀러 가기!문제는 어렵지 않았습니다. 규칙성을 찾아서 코드만 짜주면 끝이었습니다. 그래도 일단 중요한 것은 입력값이 1억까지이기 때문에 그냥 막짜면 시간 초과가 날거에요. 그렇기 때문에 규칙을 찾아야 합니다.제가 푼 아이디어는 다음과 같습니다.문제에서 주어지는 숫
문제풀러 가기!별로 어려운 문제는 아니었습니다. 저는 이 문제 구간합으로 접근했습니다. 입력값이 많지 않기 때문에 굳이 구간합으로 접근하지 않아도 되지만, 최근에 구간합 관련된 문제를 조금씩 풀었어서 활용해볼겸 그렇게 코드를 짰습니다. 그리고 무엇보다 입력값이 1 ~
문제풀러 가기!처음에 이 문제 풀 때는 조합으로 접근했습니다. 물론 문제의 조건에 따라 연속된 좌석에 따른 앉을 수 있는 방법의 수가 정해져 있다는 것은 알고 있었습니다. 해당 방법의 수는 계차수열을 따르고 있더군요. 그래서 그렇게 접근하고 문제를 풀었으나, 몇몇 케이
문제풀러 가기!대표적인 냅색 알고리즘 문제였습니다. 물론 전 처음에는 못풀었어요. dfs로 접근했다가 시간 초과 났습니다. 안그래도 코드 짜면서도 좀 그랬습니다. 입력값이 많은데, 이래도 되는건가... 라는 생각들이 많았습니다. 아직 완전히 냅색 알고리즘을 이해하진 않
문제풀러 가기!전형적인 DP 문제입니다. 물론 queue로도 접근할 수 있는거 같은데, 예외처리를 해줘야해서 조금 더 생각해볼만 했던 문제였습니다. 저는 아직도 dp라는 부분에서 memoization이라는 것이 와닿지는 않는 것 같습니다. 좀 더 연습이 필요하네요.이런
문제풀러 가기!쉬운 DP 문제였습니다.문제에서는 n이 11까지로 한정되어 있기 때문에 11개의 배열을 만들고 이를 통해서 memoization을 진행하면 됩니다.memoization을 진행할 배열의 이름을 dp라고 한다면수식은 다음과 같습니다.dp\[i] = dp\[i
문제풀러 가기!이 문제 역시 그렇게 어렵지 않았습니다. 문제의 규칙대로 2차원 배열의 최대값을 갱신하면서 진행하면 바로 풀리는 문제였습니다. 따라서 2차원 배열을 dp라 했을 때 dpi의 값은 다음과 같습니다.dp\[i]\[j] += dp\[i-1]\[j] + dp\[
문제풀러 가기!오랜만에 Two Pointer 문제를 풀어봤습니다. 그렇게 어려운 문제는 아니었는데, 아이디어를 못잡으면 풀지는 못하는 문제였습니다. 최근 코딩테스트 메타를 보면 충분히 괜찮은 문제였다고 생각해요. 최근에 그냥 내키는 문제만 풀고 있어서 그런거 일수도 있
문제풀러 가기!요새 빡구현 문제를 잘 안풀게 되서 각성 좀 해야 할 것 같습니다. 조금씩 카카오 기출이나 삼성 기출을 풀어야 할 것 같습니다.이 문제 역시 그렇게 어려운 문제는 아니었습니다. 그래프를 활용하면서 dfs로 순회하면 끝나는 문제였습니다. 아무래도 파이썬의
문제풀러 가기!오랜만에 Tree 문제를 풀었습니다. 이 역시 문제가 그렇게 어려웠던 것은 아니지만, 오랜만에 트리를 풀어서 그런지 재귀가 헷갈려서 문제를 온전히 풀지는 못했어요. 이런 문제를 좀 더 풀어봐야겠습니다. 익숙해지고 알고리즘을 kotlin으로 거리낌없이 짤
문제풀러 가기!문제가 그리 어렵지는 않았지만.. 재귀 한계 때문에 좀 고생했던 문제였습니다.영역을 담당하는 n, m은 100까지 밖에 없습니다. 따라서 순회를 하면 100 X 100으로 시간 복잡도는O(n\*m)으로 계산됩니다. 또한 k의 경우에도 최대 100, 그리고
문제풀러 가기!이 문제는 심심해서 풀어봤어요.역시 구간합 문제에서 많이 쉬운 문제는 머리 풀기 좋은 문제인거 같습니다.역시 그냥 모든 값에 누적합을 진행하고 문제의 조건 대로 구간을 만들어서 빼주면 됩니다.입력값이 100,000 이라 한번의 순회로 모든게 끝나야 되기
문제풀러 가기!우선 이문제 참... 하하...많은 걸 알게되는 문제인 것 같습니다.일단 이분탐색 문제를 최근들어서 풀지 않았었는 데, 이번 기회에 다시 복습해서 다행이네요. 이런 문제가 기업 코테에 나온다고 생각하면 아마 못풀지 않았을까 생각들어서 그런지 정말 다행입니
문제풀러 가기!요새 이분 탐색 문제를 조금씩 풀고 있는데, 쉬운 문제였지만, 감을 계속 맞춰서 가고 있는 것 같습니다.이분 탐색에서 가장 중요하다고 생각하는 것은 도대체 무엇을 탐색해야 하는가? 라고 생각이 들기 때문에 문제의 가장 마지막에 주어진 글을 자세히 읽어봐야
문제풀러 가기!요새 삼성 대비 문제를 좀 많이 풀고 있습니다. 개인적으로 삼성 문제의 경우 기초를 다지기 정말 좋은 문제들이 많다고 생각이 들어서 그런지 기초에 좀 더 치중해서 문제를 풀고 있습니다.이번 문제는 사실 처음에는 감을 못잡았습니다. 어떤 방식으로 가야 풀릴
문제풀러 가기!단순 bfs였습니다.중요한 것은 출력 값이 소수여야 하기 때문에 이부분만 조심하면 금방 풀 수 있었던 문제였습니다.딱히 설명할게 없습니다... 문제에서 주어진 조건대로 방문한 곳은 다시 재방문하지 않으면서 모든 경우의 수를 구하고 해당 확률값을 더해주면
문제풀러 가기!엄청 어려운 문제는 아니었습니다. 이 문제의 출제의도를 한마디로 표현하자면문제에서 주어진 조건을 bfs로 만들 수 있는가? 물론 bfs 말고도 여러 방식으로 문제를 풀 수 있겠지만, 가장 간단하게 접근할 수 있는 방법은 bfs였다고 생각합니다.그래서 문제
문제풀러 가기!생각이 좀 필요한 문제였습니다. 그리고 타입에 대해 신경을 썼어야 했던 문제였습니다.문제 풀이 아이디어는 생각보다 복잡하지는 않습니다. 그래도 무지성으로 코드를 작성하면 당연히 문제가 틀릴겁니다.일단 문제 풀이 아이디어에 대해서 생각해보죠.문제의 조건 상
문제풀러 가기!이 문제는 사실 dfs로 접근했다가 틀린 문제입니다. 아직 입력값을 고려한 로직을 작성하는데, 문제가 있는건가 싶네요.그리고 문제를 풀면서 하나 새로 얻은 것도 있습니다.바로 ArrayDeque()라고 하는 겁니다. 사실 Python을 먼저 배우다 보니,
최근 SW 역량 테스트 때문에 알고리즘 문제 풀이에 집중하고 있어서.. 블로그를 등한시 하고 있습니다.. 죄송합니다!! 그래서 오늘은 제가 풀고 있는 알고리즘 풀이를 해보려고 합니다.문제 풀러가기!아기, 청소년, 어른 상어에 이에 마법사 상어 시리즈의 마지막 단계인 마
문제 풀러가기!전형적인 dfs 문제로 배열로 구분하는 것이 아닌 hash로 구분했습니다.문제의 설명을 잘 보면 특정 노드부터 시작해서 해당 부모 모드로 타고타고 올라가는 방식 형태가 가장 큰 특징이며, 문제에서 그렇게 정보를 주었기 때문에, 해당 데이터를 이용하여 특정
문제 풀러 가기!전형적인 PS 풀이를 이용한 문제입니다.G1에 랭크되어 있는 만큼 알고리즘 짜기 힘들기도 하고 생각하기도 힘들다는 생각이 드네요.그래도 괜찮습니다. 차근차큰 생각하다보면, 답이 나올 것입니다.문제에서 설명하기를 1번은 인터넷이 무조건 연결되어 있고 N번
문제 풀러 가기!문제 분석단순한 DFS 문제로 판단했습니다. 다른 방식은 아직 생각나지 않았습니다.어차피 문제의 자료구조가 트리구조이기 때문에(순환x) 최하단 자식 노드까지 내려갔다가 부모로 다시 올리면서 문제의 조건을 대입해주면 됩니다.주의할 점은 문제의 조건상 12
예전에 풀어본 문제지만, 그때는 안풀려서 다른 분 답을 참고했다. bitmask를 활용한 알고리즘 문제를 꼭 내 힘으로 풀어보겠다는 다짐을 한체 꾸준히 bitmask를 풀었고 어느 정도 감이 잡혔던 상태로 다시 한 번 이 문제에 도전했다. 문제는 그렇게 어렵지 않다.
문제 풀러 가기!난이도: G5사용한 알고리즘: Bitmask, 완전 탐색G5에 랭크되어 있어 어느 정도 어렵겠지 했지만, 그렇지 않았습니다. 1일 알고리즘.. 이거로 힐링하고 있는데, 만족스럽지 않네요ㅜ점점 골드가 골드가 아닌거 같은 이 느낌....그래도 겸손하게 꾸준
문제 풀러 가기!문제를 읽다보면, 가장 위쪽 방향부터 찾으면 되겠다고 생각드는 문제였다.(이부분이 Greedy다)사실 내 풀이는 최악의 시간복잡도가 1초 1억이 넘는다. Python이기 때문에..... 핸디캡이 붙은 듯 하다.여튼 가장 위쪽 부터 탐색을 시도하면 그 다
문제 풀러 가기!문제의 조건을 준수하면서 그래도 코드에 입히면 끝나는 문제였으나, 그게 쉬웠으면 Gold1에 랭크되어 있진 않겠지요..요점은 문제의 조건을 어떻게 코드에 입힐 것인가? 입니다.이때는 비트 마스크를 활용합니다.비트마스크를 사용한 다는 것은 결국 어떤 상태
문제 풀러 가기!이 문제 처음 문제를 읽고 일반환된 코드를 생각하지 못해 틀렸습니다.중요한 것은 문제에서 이야기한 말 이동의 횟수에 따라 이동할 수 있는 것이 달라진다는 것. 그리고 이걸 방문 배열에서 어떻게 체크할 것인가? 입니다. 만약에 자꾸 틀리신다면, 아래 TE
문제 풀러 가기!일단 전 이거 틀린게 맞는거 같습니다. 맞았습니다! 라고 떴지만, 문제에서 유도한 제약사항을 간신히 통과했고 문제에서 요구한 코드를 작성하지 않았기 때문에 틀린게 맞는거 같습니다.ㅠㅠ여튼 제가 풀이한 코드는 다음과 같습니다. 원래라면 틀려야되기 때문에코
요 며칠 연휴여서 심심하기도 하고 오랜만에 알고리즘을 풀었습니다. 작정하고 어려운 문제를 건든게 아니어서.. 좀 쑥스럽네용..케빈 베이컨의 6단계 법칙, 문제풀러가기!전형적인 데이크스트라 문제로 간단하게 풀었습니다.graph 만들고 실제로 순회할 부분만 따로 보기 위해