백준 2589--c++문제 바로가기1\. 이러한 map형식은 bfs,dfs,dp를 이용하는것이 대부분이다.2\. 문제를 읽을때 최단거리로 이동한다는 말이 나온다.=>bfs이용그렇다면 왜? dfs가 아닌 bfs를 사용해야하는 것일까?이번 문제는 dfs를 사실 이용해도 괜
문제바로가기이번에 풀어본 문제는 구현문제이다.난이도: 하시간:2시간알고리즘: 구현문제에서 예시들이 친절하게 설명되어있고, 주석처리를 해두었으니 딱히 어려울 부분이 없는 문제였다.다만 이 글을 해설을 보기 위해 오신 분들이라면 아마, 구름을 이동시킬때 어떻게 할지 궁금해
어렵지 않은 문제였다.OutOfBoundsException만 처리해준다면, 어려울것이 없는문제.잠깐 코드 일부분을 봐보자.plus.size()>0 이것을 왜썻을까? 이생각을 해야한다. 만약 plus.size()>0이 없다면, plus vector의 크기가 0인상태에도
퍼즐 조각 채우기진짜 역대급 난이도의 구현문제였다. 사실 dfs를 사용하긴하는데 이건 너무 기본적인 좌표 빼낼때 쓰는것이고,삼성 기출에서도 이런 퍼즐 맞추기를 풀어본적이 있는데, 그때는 최대 갯수를 넣는것이므로, 백트래킹으로 풀면 어느정도 해결이 되는 문제였다.다만 이
용액이번문제는 일단 투포인터를 이용해야한다.문제를 다 풀고 투포인터를 사용해야합니다~ 이건 도움이 아에 안되고, 우선 왜? 투포인터를 사용해야할까?\-99 -3 -2 1 100 이렇게 용액이 주어진다면, 완전탐색으로는 -99 -3, -99 -2, -99 1, -99 1
이번문제는 bfs를 활용한 문제입니다.핵심은.물과 고슴도치가 1개가 아니다.고슴도치는 물이 찰 예정인 칸으로 이동할 수 없다.q.size()를 미리 밖으로 빼두어야한다.이3가지가 핵심이 되겠습니다. 하나하나 설명을 해보자면어? 물은 1개가 아닌건 알겠는데 고슴도치는 1
오늘부터 카카오 기출문제 풀이 형벌에 처하도록 하겠다...어려운문제를 풀어야 실력이 늘지 않을까? 싶다...이번문제의 난이도는 하 난이도로 stack 자료구조를 쓸 줄 안다면, 전혀 어렵지 않은문제였다.구현과정은 2가지로그래프를 만드는과정 makegraph()그래프를
튜플 문제 바로가기이번문제의 핵심은 2가지 이다.문자열파싱문자열 크기대로 정렬첫번째로, 문자열 파싱이다.{1,2,3} 각 괄호마다 떼어내서 vector v에다가 넣어야한다.두번째로, 문자열 크기대로 정렬해야한다.왜그래야할까? 만약 {2},{2,3},{4,2,3} 이렇게
불량사용자 문제 바로가기이번 문제는 살짝 난이도가 있는 문제였다.구글링을 해보니 DFS로 푸신 분들이 계신거 같은데,,, 아무리 코드를 읽어봐도 사실 이해가 잘 되지 않았다.나는 순열을 통해서 문제를 풀었는데, 퍼뮤테이션을 이용해서 문제를 설명해 보도록 하겠다.문제의
이번 문제는 참 카카오가 잘 만든 문제라고 생각이 든다.이 문제는 그냥 풀지는 못했고 해설을 보고 풀었다.우선 내가 처음에 정확도는 통과하지만, 효율성은 통과하지 못하는 코드를 설명하겠다.(그냥 틀렸으니까 정답코드 봐야지 하고 넘어가지 마시길..)정확서 O, 효율성 X
문자열 파싱문제어렵지 않았다.함수를 설명해보자면,문자열을 파싱해준다.Enter로 들어오면, uid,neck에 맞게 Map에 넣어준다.만약에 uid가 이미 존재하는경우는 그냥 neckname을 바꿔준다.change는 map에서 key uid에 value neack을 바꿔
이번문제는 후보키 문제였다..학교에서 데이터베이스시스템 설계가 A+인데도, 이문제를 볼때 어? 이거 후보키 최소성을 왜 이런식으로 만족을 하지? 라는생각이 들었다.그래서 후보키를 뽑는 과정을 살펴보자면,\["100","ryan","music","2","200","ape
진짜 어려웠던 문제...Back Tracking에 사고가 매몰되니까 도저히 어떻게 풀이를 해야할지 감이 안잡혀이틀정도 고민하다.결국, 답안을 보고 문제를 풀었다.참고블로그양과 늑대--문제 바로가기이 문제의 핵심은 한가지다.모든 노드를 끝까지 탐색할 필요가 없다는것이다.
이번 문제는 이진트리를 사용하는 문제이다.여기서 내가 헤매었던 부분이기도 하고, 핵심이기도 한 부분이 바로,임의의 노드 V의 왼쪽 서브 트리(left subtree)에 있는 모든 노드의 x값은 V의 x값보다 작다.임의의 노드 V의 오른쪽 서브 트리(right subtr
이번문제는 문자열 처리 문제입니다.문제 해결방법을 카카오측에서 제시를 하였기 때문에, 그대로 구현하면 되는 문제였습니다.괄호변환 바로가기입력이 빈 문자열인 경우, 빈 문자열을 반환합니다. 문자열 w를 두 "균형잡힌 괄호 문자열" u, v로 분리합니다. 단, u는 "균형
무지의 먹방라이브 문제 바로가기이번시간에는 먹방라이브 문제를 풀어보도록 하겠다..비슷한 구조로 생각을 하긴 했는데, 결국 답을 보고 풀었다.이 이야기를 하는 이유가 바로, 틀린 코드도 먼저 살펴보고 가면 좋을것 같아서이다.자 이 문제를 딱 보자마자, 드는 생각은K값이
이번문제는 시뮬레이션 문제이다.난이도가 상당했지만, 구현자체는 어렵지 않았던 문제기둥과 보 설치 문제 바로가기이 문제의 핵심은 두가지이다.설치할때 설치가 가능한가?삭제할때 삭제가 가능한가?처음에 이 문제를 접근할때, struct로 보와 기둥을 만들어서 포인터로 연결해서
문제바로가기이번문제를 풀면서 꼭 파이선으로 바꿔야겠다는 생각이 들었다..ㅠ이문제는 특별할것없이 과정은 대략 아래와같다.Map을 이용하여, 각 약관에 맞는 month넣기 -> 약관 중복없음오늘날짜와, policies 날짜 파싱하기policies에 약관날짜를 더하기오늘날짜
문제바로가기이번문제는 어렵지 않다.핵심은 이거다. 일단 제일 먼집부터 방문하는것이다.왜? 먼집부터 방문해야하냐?그래야, 만약 먼집에 서 처리를 할 수 있으면 방문을 안해도 되기 때문이다.그래서 그냥 구현은 문제에서 준 예시처럼 구현하면 된다.처음에 약간 헷갈린게,1 ≤
이모티콘 할인행사 문제 바로가기이번문제는 간단히 BT를 사용하여 완전탐색을 하면 된다.왜 BackTracking으로 사용해야 했을까?처음에 문제를 접했을때? 퍼뮤테이션을 사용하여 순열과 조합을 사용해야 하나 ? 싶었다.그런데 순열은 말이 안되는게4개의 숫자 1,2,3,
멘탈이 엄청나간 문제..그렇게 어렵진않은데 왜안되지 왜안되지 하다가노트북을 반대로 접어버리고 싶은 마음이 굴뚝같았던 문제다.ㅠㅠ의외로 과정은 간단한데1\. 정수를 2진수로 바꾼다.2\. 포화이진트리에 맞게 0을 추가해준다.3\. DFS 탐색으로 확인한다.단계는 이렇게
시간복잡도에대해서 생각해볼 수 있는 문제였다.이문제는 단순한 dfs로 생각 할수도 있다. 그런데 조건 이때, (x, y)와 (r, c)격자를 포함해, 같은 격자를 두 번 이상 방문해도 됩니다. 때문에 일반적인 dfs로는 풀지 못한다.왜일까?ㅁㅁㅁㅁㅁㅁㅁㅁㅁ이렇게 칸이
C++ 라이브러리를 알면 쉬웠던 문제푸는 순서를 설명해보면1\. init으로 map을 초기화한다.2\. id를 파싱한다.3\. check로 확인한다.4\. id_list순서대로 메일이오는 것을 확인하기1번 init으로 map초기화이렇게 하면 m은이런식으로key가 유저
소수판별법, K진수 바꾸는법만 알면 간단했던문제,사실 간단하진 않고, 실제 시험장이라고 가정하면 일단 완벽히 못맞추고 1번과 11번을 100퍼센트 틀렸다.아마 부분점수가 없다면, 1번에서 나가리...K진수에서 소수갯수 구하기 바로가기이문제는 딱 두가지만 알면된다.1\.
주차요금계산 바로가기1번문제와 비슷해서 매우 간단한문제우리는 map을 만들어야하는데이거랑,0202 16:00 18:003961 16:00 18:00 23:58이 map을 만들어야한다우선 map을 사용해야하는이유는 애초에 answer반환형이 오름차순이기 때문에 애초에 c
양궁대회 바로가기이번문제는 완전탐색으로 풀수있는 문제였다.핵심을 알면 쉬웠던 문제로, 만약 10점에서 이길꺼면 어피치보다 딱 1발 더쏴서 이기고 질꺼면 아에 안쏘는게 이득이다.한번 풀어보자.일단 어떤식으로 접근해야할까?문제를 처음 볼때 쓱 보면서 이해를 하고 뒤에 이어
파괴되지 않은 건물 바로가기이번 문제는 정답을 보고 풀었다.정답 사이트에 굉장히 친절히 설명을 해주어서 정답 레퍼런스만 보고도 풀수 있었다.애초에 누적합이라는 알고리즘을 몰랐기에, 이번기회를 통해서 더 잘알게 되었다.누적합에 대한 알고리즘은 나중에 다시 설명하도록 하고
C++로 문자열 처리를 하려니 정신이 나가버릴꺼 같았지만, 그래도 꿀팁을 깨닫게 된 문제였다.문제바로가기c++에서 문자열 처리에서 핵심은 일단 문자열로 로직을 처리하기보다는 deque로 옴겨서 문제를 푸는게 맞는거 같다.일단 이 이유가 뭐냐면, string s = "d
간단한 완전탐색,BackTracking,조합완탐, BackTracking, 조합 그 무엇을 써도 좋다.문제바로가기풀이법모든 조합 만들기abcdef라면, 2,3,4에서 나올 수 있는조합은2: ab,ac,ad,ae,af,bc,bd,be,,,3: abc,abd,abe,abf
합승 택시 요금 바로가기이 문제는 난이도가 굉장히 쉬웠다.고민도 10분정도 밖에 안하고, 푸는데도 20분정도 밖에 안걸린문제..!!딱 한번 제출하고 바로 맞췄는데 이 문제를 통해 굉장한 자신감을 얻었다.일단 이 문제는 플로이드 와샬알고리즘을 쓰면된다.물론, 다익스트라를
확실히 인턴이 블라인드 채용보다는 문제가 쉬운느낌!문제바로가기딱히 설명할것은 없고 경우의수가 1,2,3,4,5,6,7밖에 없으므로 그냥 if문을 7개 만드는게 더 효율적이라고 생각해서 조건문을 각 경우마다 7개 -> 사실 4같은 경우에는 0점이니까 조건문 안만들어도됨각
문제 바로가기(https://school.programmers.co.kr/learn/courses/30/lessons/118667풀이법각 queue의 숫자합을 더한다.각 queue의 숫자를 비교해서 더 크면 빼서 다른 queue에 넣는다.어떤 방법으로도 같은
문제 바로가기이번문제는 DP를 사용한 문제이다.DP임을 알지못해 풀지 못했고, 해당 블로그(https://howudong.tistory.com/391일단 문제를 보고 DP임을 알아야하는데, 몇가지 힌트들이있다.DP유형의 대표적인건데,알고력과 코딩력을 올릴려면,
문제 바로가기이번문제는, 다익스트라를 활용하는 문제이다.다익스트라로 문제를 풀 생각을 못했던게,다익스트라는 하나의 노드에서 모든 노드로 가는 최솟값을 구하는 방식이다.고로, 노드 1번에서 산봉우리 3을 거쳐서 산봉우리5를 가는게 최단거리이면 해당 최단거리가 답이 되는게
이번글은 이 글을 보고 만들었습니다.쉬울줄 알고 연습장에 안썻다가 머리가 꼬여, 아에 풀지 못한문제...DFS를 사용하는 문제였습니다.강의실이 5개로 정해졌으므로, 각 강의실을 돌면서 확인할것입니다.P부터 시작을 합니다. -> 여기서 visited를 1로 만들고 넘겨줘
문제바로가기 이번문제는 이분탐색을 약간 쓰라고 힌트를 말로 준 문제, 하지만 이 문제는 이블로그 를 참고해서 풀었다. 일단 역시 문제의 흐름을 통해서 어떻게 풀지 생각해보자 info에서 java backend junior pizza 150이 있다. query에서 ja
이번 문제는 혼자 풀지 못해 아래 글을 참고하여 풀었습니다.참고 블로그우선, 이 문제는 보자마자 투포인터로 풀어야겠다. 생각은했는데, 계속 segment fault로 풀리지 않아 해답을 봤습니다.투포인터라고 생각한 이유는, 최단 구간의 처음과 끝을 출력하라 하였으므로
문제 바로가기그냥 sort함수를 사용하면 되는 간단한 문제가장 작은 합을 만들어야하므로, 가장 작은 두수를 뽑고 더한다음에 덮어씌우면된다.이렇게 쉽나? 싶었는데 15000\*1000log1000이 4500만번정도라 1초 안에 들어간다 확신하고 쉽게 풀었다.
문제바로가기문자열 파싱next_permutation을 활용한 수열 조합으로 계산하기1.문자열 파싱하기 numss에는 100,200,300,500,20opp에는 + + 가 들어가있다.순열계산현재 v라는 vector에는 순열 조합으로 \* + - 가 들어가있다.그래서
문제 바로가기해당 문제는 그리디 문제이다.4177252841숫자를 크게만들려면 단 하나의 조건만 고려하면된다.앞자리가 뒷자리보다 크면된다.고로 뒷자리에 뭐가 오던지 상관없이 그냥 앞자리가 크게 숫자를 빼주면 되기 때문에 그리디 문제가 되겠다.맨처음에는 일단 비교할 숫자
해당문제 바로가기이번문제는 이분탐색 문제로, 굉장히 카카오에서 잘 만든 문제인거 같다.문제의 조건을 보자마자 딱 생각해봐야할것이, stones의 배열크기가 200,000이고, stones의 size가 200,000,000이라는것이다.만약에 배열의 크기가 200,000인
문제 바로가기DFS를 사용한 문제이다.처음에 사이클을 판단하는 문제인줄알고, union find를 사용하려 했지만, 이분 그래프는 사이클과는 무관하였다.이분그래프를 판단하는 방법은 쉽다. 한 점에서 빨강 또는 파랑에서 시작하고, 그래프를 다 색칠한다그다음 노드를 잇는
BFS + 3차원배열을 활용하는문제문제 바로가기문제 핵심1\. BFS인데 visited 배열을 사용하지 않아, 한번 방문한 노드를 다시 방문가능하게 할것(최소비용을 계산하기위해)2\. 다시 방문하는 기준은 방문할 노드보다 최소비용이 더 작으면 queue에 삽입가능3\.
문제 바로가기(https://school.programmers.co.kr/learn/courses/30/lessons/258711Lv2라고 하기에는 좀 어려웠던 문제.. 알고나니까 쉬운??잡설은 그만하고 바로 들어가자이 문제의 쟁점은 아래와같다.생점을 구해야한
문제 바로가기해당 문제는 3가지 단계로 나눠야합니다.해당 단계에 맞춰서 설명해보겠습니다.주사위 Combi 구하기4개의 주사위가 있으면 {1,2},{1,3},{1,4},{2,3},{2,4},{3,4}A가 {1,2} B가 {3,4}를 가져갔을경우 A와 B가 만들수있는 주사
문제 바로가기이번 문제는 해당 글을 참고하고 풀었습니다.https://school.programmers.co.kr/questions/43364이걸 어떻게 풀어야할지 감도 안잡혔는데, 위의 글을 보자 도대체 이런 풀이법은 어떻게 생각했을까? 자괴감이 드는 문제였
이번 문제는 크루스칼 알고리즘을 활용한 최소신장트리를 찾는 문제입니다.알고리즘만 알고있으면, 쉬운문제로 해당 문제를 활용한 문제를 하나 또 풀어봐야겠습니다.최소신장 트리를 구하는 문제인지, 아닌지는 판단하기 굉장히 쉽습니다.왜냐하면, 다익스트라, 벨만포드, 플로이드 와
ABCDE 문제 바로가기해당 문제는 BackTraking을 사용하는 문제입니다.문제 자체는 어렵지 않은데, 문제가 뭔 말을 하는지 이해가 되지 않아서, 다른 블로그에서 해설 조금 + 반례를 참고하여 풀었습니다.일단 이 문제가 요구하는 것은 0 1 2 3 4 5 6 7
이번문제는 BFS를 사용해서 푸는 문제입니다.문제가 참신하고, 난이도도 쉬워서 재미있게 풀었습니다.문제 바로가기해당 문제에서 고려해야할 점은, BFS입니다.BFS임을 어떻게 바로 알 수 있냐면, 게임판의 상태가 주어졌을 때, 100번 칸에 도착하기 위해 주사위를 굴려야
이번 문제는 그리디로 풀면 되는 문제였습니다.어떻게 풀지 몰라, 블로그를 참고하여서 풀었습니다.처음 문제를 접했을때는, 정방향으로 배열을 순회하면서, Max값을 갱신해가면서 누적합을 구해야하나? 이런식으로 접근했는데도저히 구현이 어려웠는데,만약1 1 3 1 1 5라면앞