백준을 기준으로 문제를 뭐부터 풀어야 하는지 정리함.먼저 PS시작하기 이곳을 참고를 함. 그리고 내가 들었던 인강에서의 문제 순서를 기준으로 문제 순서랑 내생각을 정리를 해봄..본인은 일단 알고리즘 공부 1도 안한 상태였음.그러다 친구 추천으로 PS시작하기 링크 블로그
pair라는 것을 알았다면은 구조체를 사용안해도 되었을 거 같다.
백준 11720https://www.acmicpc.net/problem/11720저거 cin >> ch아마도 ro 영역에 다 올린다음에하나씩 읽어와서 sum에다가 더해주는거 같다.
https://www.acmicpc.net/problem/1463뭐 이딴 문제임. 일단 나는 BFS를 강의를 들으면서 배웠음.하지만 문제를 보자마자 드는생각은 BFS가 먼저 생각이 났지만 뭘 어떻게 해야할지는 몰랐고,DP는 아예 생각도 안남. 일단 구글링하면서
https://www.acmicpc.net/status?user_id=starkshn&problem_id=11726&from_mine=1문제를 일단 잘 읽자!10007로 나누어서 출력하라는 부분 간과한점이랑 DP문제인점을 처음에 간과한점..반복되는 부분에서의
일단 나는 머리가 안좋기 때문에 하나하나 다 적어봄팩토리얼 같은 규칙을 발견함 일단.등차수열같은..라고 생각을 했는데 이렇게하면 안됨.4같은 경우 2-2 이런경우가 있음. 등차수열도 아니고 뭐도 아님. DFS로 풀 수 있을거같다 BFS나...tlqkf 모르겠다..
빡대갈 머리로는 도저히 이해를 할 수 없어 이런식으로 계속 노가다함...그러다가 발견한게 무조건 양옆의 합이 홀수라는 점을 발견함..그래서 이것을 BFS나 Dijkstra 가중치를 생각을 했는데 대가리가 너무 아파서 포기하고 구글링을 함.https://yabm
https://www.acmicpc.net/problem/11057뭐 이런 문제인데 이전 문제 "쉬운 계단 문제"랑 거의 똑같은 문제이다.https://velog.io/@starkshn/%EB%B0%B1%EC%A4%80-10844-%EC%89%AC%E
https://www.acmicpc.net/problem/2193이 문제 또한 노가다를 먼저시작함. 한 규칙찾는데 30분 걸린듯?이렇게 하니까 규칙이 바로 보여서 코드 바로짬..오늘 오르막수에서 개털려서 조금 쉽게 느껴짐.
c++ 코드
어제 계속하다가 머리 터질거같아서 오늘 다시 하니까 이해가 되었음..3잔 연속 마실 수 없으니까 모양이 아래와 같이 될것임.cachen을 n잔을 마시기 전의 최대합이라 생각밑의 사진과 코드를 보면서 이해를 하도록 하자..설명을 잘 못한다는 것은 본인이 완벽히 이해를 못
머리 터질뻔함..1시간 넘겼기 때문에 AC보면서 이해할려고해도 많이 어려웠음메...DP의 기초 문제를 풀고있지만 왜 DP가 제일 어렵다는지 알겠음...ㅠ
먼저 백준 boj.kr/11053이거부터 풀는거 추천함.11053이랑 다 비슷하다고 했고 나도 비슷하다 느꼇지만 결국 풀지는 못하고 해설을 보고 이해를 함...다른사람들 코드는 이해가 안갔지만https://velog.io/@matcha\_/%EB%B0%B1%E
11053, 11055 랑 똑같은거랑 뭐 분석할게 없다..11053, 11055를 제대로 이해를했다면 금방 풀 문제 같다.
https://www.acmicpc.net/problem/11054일단 너무 아쉬웠다. 1시간안에 못풀기는 했는데딱 1시간쯤에 생각나던 부분에 부분증가 수열을 거구로 돌리면 어떻게 될까? 였다.그래서 아래의 코드는 이해하였기 때문에위의 그림처럼 거꾸로 돌린다면
https://www.acmicpc.net/problem/1912일단 내가 아직 잘 DP를 잘 못푸는 거같다고 다시한번 생각하게됨.. 시간도 많았는데 결국 못품...max함수와 캐시질을 같이 활용을 어떻게 해야하는지 감이 안잡혀있는거 같다라고 느낌.특히 이런
계단오르기처음에 올라갈 수 있는 방법이 좀 햇갈렸다.처음에 이런식으로 갈 수 있는지 아닌지 문제를 잘 이해를 못했었다..이문제도 이해를 못하겠어서 바로 해설을 보고 이해를 하는 방향으로 진행을 함..코드를 보면서 문제의 의도? 뜻이랑 이해를 할려고 하니까 이해는 바로
제곱수의 합일단 점화식을 생각을 도저히 못했었음..위의 코드에서 cache의 인덱스에다가 i - j \* j 이런식으로 인덱스를 넣는다거나cache의 인덱스가 만약 3 cache3일 경우3일때의최소 제곱수를 뜻한다고 cache를 정의하는 부분이라던지...1시간도 넘겼고
타일 채우기일단 오만하게 생각을 해버려서 내가 생각한 경우의 수 이외에 다른거 없는거 같다라고 생각을 함. 특히 n이 4일때부터 고유의 모양이 나오는 부분을 간과를 함계속 고유의 모양이 나오고n이 6일때 dp6 = dp4 \* 3 + 2 까지는 이해가감.먼저 빨간칸을
합분해먼저 떠오른게 순열과 조합중에서 순열 떠오름순열 nPr, 조합 nCr근데 순열은 순서가 상관있는거라 순열 구현해서 제출을 딱 하면 시간초과 뜸..그러면 방법은 DP이다.뭐 몇개중에 몇개 뽑아서 합이 되는지 안되는지 확인할려고했는데 중간에 간과한게 0도 포함이 될
가장 쉬운거는 구현문제이다.brute-force 방법으로 일단 풀고DP, 최단거리, 뭐 등등 생각을 해야한다.일곱난쟁이9명중에서 순서와 상관있이 순열으로 뽑아도 됨.nCr로 9명중에 7명을 뽑아서 합이 100이되는 경우와nCr로 9명중에 2명을 뽑아 전체합 - 2명의
알파벳 갯수이 문제는 너무 쉬움.쉽다고 뭐 공부 안할게 없다는 것은 아님.나는 쉽다고 했지만 암시적 형변환 개념을 생각을 못하고 풀었음. (이건 푼게 아니다...)풀었지만 왜 이렇게 풀었는지와 왜 이러한 방식을 썻고 다른방식이 있는지 생각을 해볼 필요가 있는듯?나는 아
트럭 주차배열을 통해서 어느시간부터 어느 시간 까지 있었는지.시간을 잡을 때 i = 시작시간; i < 있었던 시간이렇게 해야함.
팰린드롬reverse하면 "원본 배열"에 영향을 준다.
구현문제임농구경기int <-> char 간의 암시적 형변환과 아스키 코드를 알고있는지 물어보는 문제인거같다.나는 이렇게 그냥 바로 char(97 + i);를 형변환해서 출력했는데 아래 풀이의 코드가 더 깔끔하고c++의 암시적 형변환을 잘 활용한 코드같다.좀더 배우
농구경기풀이의 ret += (i + 'a')나ret += (i + 97);이나 똑같은데둘다 암시적 형변환을 활용한 연산이다.이거 98 나옴cout << 1 + 'a';이거는?이것도 98 나옴.
ROT13개행까지 입력을 받고 싶다면 getline함수
한국이 그리 울 땐한시간 넘겨서 풀이봄..ㅠ일단 예시에는 a\*b 이렇게 있는데 이게 항상 한글자만 들어오는것은 아니라는 건 캐치함.여기 보면은 여러개라고있어서 긴가민가 했는데 일단 문제대로 해석을 할려고함.강의 듣다가 아차... 싶었다내가 평소에 잘 안쓰는substr
수열화나서 코드만 조금 바꾸고 계속 제출 해봄.."문제"에서 "최대값"구하라고하면은 최소값부터 구하고"문제"에서 "최소값"을 구하라고 하면은 "최대값"부터 구해야한다.이문제에서의 최소값은\-1000만이다. 이것을 잡고 들어가야한다.내가 제출한 코드는코드가 더럽고 길다.
포켓몬 마스터
패션왕 신해빈
처음에 위와같이 매우 더럽고 길게 만들었다. 알파벳이 몇개인지 새는 부분
주몽보자마자 2sum생각났었는데가만생각하니까 다시 "조합"이랑 개념이 같음순서 상관없이 2개 뽑아서 M을 만족하는거 뽑는거니까그래서일단 bruteforce식으로 풀려다가 O(N^2)이 나오니까 pivot을 두개를 잡고 푸는 방식으로 할려다가 좀 돌고 돌아서 겨우 제출함
좋은 단어문제를 보고 먼말이지? 싶으면은 90도 회전해서 보거나단어를 하나 더 붙여보거나 뒤짚어도 항상봐야한다 "도식화"하면서이 문제는 90도 돌려서 보면은 stack을 사용하는 문제이다.이걸 어케 생각함??밑에 코드는 그냥 안봐도됨 얼마나 더럽게 짜고 문제를 이해를
곱셈일단 이문제 시간제한이랑 최대, 최소보고for문 사용하면 안된다라는 점과시간복잡도를 O(log n)으로 줄여야 한다는 것 까지는 이해를 함.그리고 나머지 연산을 해야하기는 해야할거같은데 뭐 우째야 될지를 모르겠었음.20억 X 20억 해버리면 long long으로도
1최대 최소 확인brute force가 가능한지 확인2번이 안된다면 다른 방법 생각이번에도 또 1, 2, 3을 생각하지 않았다...문제를 푸는 로직은 1, 2 ,3 이다.근데 해당로직대로 하면 overflow현상이 발생한다.즉, 다른 방법을 생각해야한다.(a + b)
pq에 밀어 넣을 때 cmp때문에 pair의 first값과 second값이 무조건 내림차순으로 정렬되면서 들어갈줄 알았는데 안들어가진다...이유를 모르겠음..밑에 코드는 안풀려서 다른 사람 코드 분석해서 작성한 부분핵심은 while안에서 pq.top하고나서 \_coun
제로이문제 좋은단어 문제와 똑같은 stack을 사용했던 문제랑 완전히 똑같아서 쉽게 풀었다.스택에 넣을까말까 하다가 조건에 맞으면 넣고 아니면 pop해버리고방법은 dequestack두가지 다 가능함.
요세푸스 문제 0이전과 비슷한 queue를 사용해서 풀었다.그림판에다가 그려보면서 도식화를 하니까 돌고도는 느낌?먼저 pop했다가 원하는 값이 아니라면은 다시 push해주고 이것을 queue가 빌때까지 반복을 하면됨.
통계학이문제 푸는데 시간 너무 많이 걸림... 오래걸려서 다른 문제 풀려고했는데 오기가 생겨서 계속하다가 결국 내일 다시 보기로한 문제임.일단 이런식으로 했는데 당연히 틀렷습니다 임.
이게 어떻게 브론즈5문제인지는 모르겠음...23/01/06 실패함.일단 10^1000승인거부터 long long으로 커버가 안되기 때문에 "분할 정복"까지는 알겠음.이거랑 비슷한 문제를 저번에 풀었었는데 곱셈 문제이다.이것도 long long범위를 초과해서 "모듈"연산
방 번호처음에 어떻게 할지 생각하다가counting star 생각해서 바로 갯수부터셈. 6이랑 9는 6번인덱스에 밀어넣고 %2했을 때 홀수 인지 짝수인지 비교부터함.1이상의 홀수라면은 셋트수를 늘려야하니까그리고 필요한 셋트수는 중복된 값이 가장큰 수대로 셋트수가 어쨋든
한국이 그리울 땐해당문제 풀었었는데 제출에 실패라고 떠서 다시 풂.풀었는데 반례를 잡는 부분 때문에 계속실패해서 강의를 다시 들음.반례가 생각하기가 원래 어렵다고 하는데 극복해야할 거같다.반례는 prefix랑 sufix의 길이의 합이 입력받은 문자열 길이보다 크다면 무
강의 들으면서 그래프와 DFS 정리하면서 푼 문제이다.방구문제(https://velog.io/@starkshn/%EA%B7%B8%EB%9E%98%ED%94%84-%EC%9D%B4%EB%A1%A0-%EA%B8%B0%EC%B4%88뭐 문제는 말도 안되는 방구로 맵
집합일단 getline과 cin함수의 유의점만 생각하면 간단하게 풀렸던 문제인거 같다.getline애서 계속 에러가 났었는데 이게https://velog.io/@jxlhe46/C-getline-%ED%95%A8%EC%88%98여기 읽어보면 된다. cin은 버퍼
미로 탐색아 일단 최대 최소 확인하고 시간제한 확인하고문제를 이해를 함. 아 일단 DFS로 풀어야겟다? 해서 풀다가 TC 넣어보고 뭔가 이상해서 문제를 다시 읽었더니 문제에서 " 최소의 칸 수 " 를 구하라고 한다.즉, 처음에는 DFS로 구했는데 BFS라는 것을 깨달았
유기농 배추이문제는 BFS, DFS둘중 뭐로 풀어도 상관은 없는 문제인거같다.왜냐하면 Connected component가 몇개인지 갯수를 새면되는 문제이기때문이다.만약 DFS로 풀경우 모든 vertex에 대해서 DFS를 다 돌려야한다.물론 visited와 인덱스 범위
안전 영역일단 문제 이해는 Connected Component문제이다.안전영역의 최대 갯수를 구하는 문제인데나는 배열 두개를 선언해서 하나는 원본(arr), 하나는 높이에 따라 0 또는 1로 바꿀 맵(temp)를 선언해서 반복문 내에서 temp는 0또는 1로 채우고 기
영역 구하기일단 먼저 떠오른것은 Connected component && DFS && 좌표계 변환 정도가 떠올랐다.예전에 win32API하면서 좌표계 변환하는거 많이 하다보니까 디버깅 잡으면서 변환하니까 이부분은 금방됨 (ChageMT 함수이다)그리고 입력을 받을 때마
쿼드 트리이문제 출력결과 보고 한참을 생각했다.이거를 보고 왼쪽 위, 오른쪽 위, 왼쪽 아래, 오른쪽 아래 4개의 영상으로 압축을 한다는 말로"(0(0011)(0(0111)01)1)" 이거를 이해할려고 하니까 도대체 무슨말인지 1도 이해가 안갔다."강의"듣고 문제 바로
사과담기이문제 비트 연산으로 풀려고 시간 다 때려박아 넣었는데 거의 다된거 같은쯤에...BFS가 필요하다라는 것을 느껴버림...왜냐하면 이런 코드로는 "최단 거리"를 찾을 수가 없음. (할 수야 있겠지만 엄청 복잡하게 해야할듯)그래서 BFS로 이 다시 구현을 하도록 하
빈도 정렬일단 이 문제는Custom operator가 생각 나야한다고 한다.(나도 cmp만들기는 했는데 아닌거 같아서 돌아왓음)또한 map의 특성을 이해하고 활용해야함.일단 우선순위 큐가 생각이 나서 pq를 두개를 써서 구현을 해보았는데이렇게 나왔다. 뭐 당연한 결과이
비밀 번호 발음하기시간 2시간? 좀 넘게 썻는데 못풀었다..밑에 코드 보면서 또 한수 배운다.이부분 코드가 딱 알맞은거같다.자음이나 모음은 3글자 이상 연속하지 못하고 두자리 연속하는 경우 'e'. 'o'만 딱 걸리내게 함.뒤에 if, if문 두개가
\[수학 숙제\[(https://www.acmicpc.net/problem/2870)음 일단 조금은 알겠는데 시간 넘겨서 강의 들으러 옴.아스키 코드값으로 0~9사이의 값인지 아닌지 판별해서 어쩌구 할려고 했는데 생각보다 많이 까다롭다.이 문제는 int, lo
기상캐스터문제는 이해를 하고 문자를 받아서 해당 문자가 c인지 아닌지에 따라서 수를 증가시키면서 매기는 부분임.못풀다가 순간 생각이 갑자기 나서 생각나는대로 적으니까 어느정도 막 적고 제출하니까 맞았다...처음에 이 맵? 배열을 뒤집어서 queue를 사용해서 제일 마지
교수가 된 현우이 강의에서 설명은 했지만 이문제 분할 정복으로 팩토리얼 계산해서 풀려니까 도저히 답이 안나왔었음.근데 이문제는 팩토리얼 다 계산 안하고2400 같은 수 가 있을 때 뒤에 00을 구하는 문제이다. (팩토리얼 계산을 다 안하고).2500 은 25 \* 10
NBA시 분 뭐 이런식으로 단위 주어지면은 하나의 단위로 통일을 해라prev라는 개념을 사용을 할 것이다 이 문제 에서는내코드를 보면은 분 -> 초 작업까지만 했고, prev개념 사용을 못했고 출력할 때 format을 맞추는 부분이 안되어있다.개선 해야할 부분이 for
영화감독 숌오늘 4시간? 조금 넘게 걸린거같다. (못 품)거의 근접하게 푼거같은데 일단 틀림.내코드 (틀린건데 어디가 틀린지 모르겠다)이런 문제는 일단 "무식"하게 풀 생각부터 해야한다.먼저 "완전 탐색"으로 풀 수 있는가? 생각을 먼저하고그다음 "DP"를 생각을 하고
괄호이문제 단순해 보일 수 있는데 예제 입출력 부분에 '())(' 이런 경우 보고 예외 조건이 딱 생각이 났다.단순히 '(' 나올 때 개수를 세는 식이 아니라 열고, 닫는다. 느낌으로 접근을 함. 문을 열지도 않았는데 닫는다는 건 말이 안되니까.이런 "짝짓기"같은 문
균형잡힌 세상이번 문제도 스택을 사용하는 문제이다.조건체크를 정확하게 안해서 계속 틀리다가 맞았다.이런식으로 체크를 해주어도 무방하다.
연구소이문제는 "조합", "DFS/BFS", "Connected Component" 세가지를 통해 로직을 3단계로 풀면 풀리는 문제이다.마지막에 connected Component를 사용하는것은 알겠고 구현은함.그런데 그전 단계인 "벽"을 세우고 바이러스가 퍼졌을 때의
치즈일단 이 문제 DFS통해서 품.한 2~3시간 걸렸는데 겉에서 부터 DFS를 돌린다고 겨우 생각이남.이 상태에서 DFS돌리면 가운데 부분 뚫려있는 부분을 어떻게 처리를 할지 고민이 많이 됬었는데그냥 겉에서 부터 돌린다는 생각을 하게 되어서 조금 코드가 돌고 돌았지만
트리내코드트리 문제는 root부터 탐색을 하자.그리고 dfs, bfs 이런거는 "그래프"를 탐색하는 알고리즘이다.근데 왜 트리도 그래프의 한 종류인데 왜 트리를 dfs로 탐색할 생각을 못했던 부분.그리고 dfs의 반환형이 void말고 int형인 부분도 구현을 할 줄 알
효율적인 해킹DFS를 통해서 풀단고 가정을 할 때 최악의 경우에는 O(N^2)의 시간 복잡도라 최대의 시간복잡도는 1억이다.(최악의 경우 DFS를 1억번 호출한다는 말이다)(근데 시간 이 5초라서 이런거 생각을 안했었다)그러면 일단 내가 구현한 부분이 틀린것인가? 라고
오큰수문제를 본다 -> 시간제한 1초이다.완탐으로 풀생각을 해본다 -> O(N^2)이 나온다.그러면 다른 여러 알고리즘들을 생각해본다.마땅한게 없다 -> 그리디 (최적의 경우의 수)를 생각한다.\-> 짝찟기 문제와 비슷하다 -> "stack"을 사용한다.이문제는 스택을
컴백홈일단 이문제 나한테 너무너무 중요하다.일단 BFS, DFS의 개념이 들어가지만 BFS로만은 푸는것은 아니다.BFS는 위의 사진 처럼 탐색을 (빨간줄)로 하는데문제는주황선으로 가는 경우도 봐야하는 것이기 때문이다.(이점을 생각을 못함)BFS만 고집을 하다가 풀지 못
주사위 윷놀이이문제는 그냥 포기함... 일단 건진거는 이문제가 시간복잡도가 4^10이라는 부분이다.
색종이 붙이기일단 너무 어렵다 강의들어도 잘 이해가 안감. 내일 다시 복습하고 분석해야할듯
치킨 배달일단 이문제 예제를 보면서 무슨말인지 계속봄.일단 최대 M중에서 "도시의 치킨 거리"를 구하는 문제이다."도시의 치킨 거리"는 "최소 치킨 거리"의 합이다.즉 Board에 치킨집에 5개있고 M이 2라면은5개중에 "최소 치킨 거리"의 합을 구하는 문제이다.여기에
보물섬보물섬 처음 제출한 코드처음에 딱보고 아! BFS로 풀자 했는데 BFS가 생각이 안나서 DFS로 풀다가 시간초과 나서 강의를 들었다.DFS로 풀때 입력받은 모든 'L'에 대해 2가지를 조합해서즉 10x10 Map에 'L'이 10개가 있다고 하면은 10C2를 통해
불!처음에 DFS로 모든 경로를 탐색하는 방향으로 할려고 했으나 실패함.이 문제는 지훈이가 불보다 빨리 나가야 하는 게임이다.가중치가 같은 경우의 최단거리 문제이기 때문에BFS를 사용해야한다.불은 이런식으로 BFS가 퍼져 나갈 것이다.지훈이는 이런식으로 퍼져 나갈 수
뮤탈리스크이문제는 놀랍게도 BFS이다.나는 처음에 931 913 이런식으로 6가지경우의 수순서에 상관있는 경우의 수니까(next_permutation 사용해서 풀 수 도 있겠지만 일단 못품..)순열이라고 생각을 했다.근데 강의 들으니까 아! 싶었음.가중치가 같고 한칸씩
괄호 추가하기인덱스를 기반으로 "누적합" -> 방향성 정해야함."완탐"을 할 때는 idx를 기반으로 뭔가를 할 생각을 해야한다.누적합이 가능한 이유가 이런경우 이런식으로 누적합이 쌓일 것이기 때문이다.아니면 아래와 같은 경우그리고 숫자랑 operator랑 나누어서 계산
숨바꼭질 2일단 "최단거리" 문제이기 때문에 BFS를 사용해야한다.그래서 이문제는 "경우의 수" + "BFS"이다.또한 "반례"가 존재한다.경우의 수는 "더하기" 이다.검은색 정점으로 가는 총 경우의 수는"빨간 정점으로 가는 경우의 수" + "주황 간선에서 검은색 정
숨바꼭질 4일단 놇친 부분은수빈이 위치가 60000쯤될 경우 동생위치가 100000만일 때 12만으로 갔다가 뒤로 빠꾸 치는게 더 빠를 수 있다.그래서 MAX값이 200004정도 되어야한다.또한 기억해야 할 부분이 prevnext = heretrace 추적할 때 사용하
숨바꼭질 5일단 이문제 개어렵다...일반적인 BFS로는 못 푼다.수빈이는 -1, +1로 왔다리 갔다리 할 수 있다는 부분을 알아야한다.그래서 x라는 좌표에 수빈이가 2초에 왔다면은 동생은 2초든 4초든 6초에 x에 오면 무조건 만날 수 있다.반대로 3초에 x좌표에 수빈
주난의 난1을 만나기 전까지 계속 탐색할 수 있도록 BFS말고 DFS를 사용해서 풀었다.처음에 문제 딱보고 아 BFS네 했다가 예시를 다시 보고 다시 로직을 수정하며 구현을 함.queue를 두개를 사용해서 0을 담을 q1, 1을 담을 q2 나누어서1이나오면 멈췄다가 q
백조의 호수내풀이 ❌거의 다풀었는데 잘못 생각했던 부분이 따로 DFS를 만들어서 Connect되었는지 확인 했던 부분이다.그냥 백조의 첫번째 위치부터 내가 while 문 두개를 사용해서 구현했던 부분처럼 쭉 진행하면 되었던 문제이다.문제를 조금더 단순화 해서 생각하도록
알파벳이문제 시간복잡도를 보면 좀 아리송? 하다.일단 아리송해도 완탐밖에 답이 없으면 완탐을 진행을 해준다.문제는 쉬운편이였던거 같다.
부등호 에따라 올 수 있는지 없는지 쓴 알파벳인지 아닌지 최대, 최소 1~3기반으로 완탐을 한다. 시간복잡도는 10!이기 때문에. 이 세가지를 구현을 했지만 틀림... 문자열 대소 비교 "123", "124" 있을 때 "1"부터 아스키 코드값으로 비교를
완전 이진 트리일단 완전 이진 트리자식노드가 왼쪽부터 꽉차있는 트리문제는 중위순회를 말하고있다. InOrder 30%순회는 전위, 중위, 후위.1 6 4 3 5 2 7있을 때 레벨화를 시켜야한다.반으로 쪼개는 과정까지 생각을 했지만 그 이상 작업을 못함..
사다리 조작내풀이 (틀림)문제의 상태값을 기반으로 visited1 이렇게 설정을 해주어야한다.백트레킹을 하는데 모든 맵을 다 직접 이동할 필요없다. => dy, dx필요없고현재 모든 사다리를 순회하면서 내 위치에서 ++, -- 를해서 다시 처음 출발했던 x좌표랑 같은지
꽃길내풀이 (틀림)먼저 벡트렉킹으로 구현을 함.가는 곳이 범위에 있는지 체크꽃을 심을 수 있는지 체크심을 수 없다면 이동심을 수 있다면 꽃을 심고 다시 이동flower cnt가 3을 채우면 값 계산 -> return위의 로직대로 구현을 했는데 틀림.분명 vs에서 답은
다이어트"비트 마스킹"으로 모든 경우의 수를 다 구할수 있다.시간 복잡도가 그렇게 크지 않기 때문에 모든 경우의 수를 다 넣어보면서 최소의 값을 찾는다.그리고 같은 경우가 있을 수 있기 때문에 최소의 경우를 오름차순으로 출력해야한다.1 2 3, 1 2 4 있을 때 1
회의실 배정내풀이시간초과 뜸.vector<pair<int, int> vec;sort(vec.begin(), vec.end()); 할경우first를 기준으로 greater, second를 기준으로 greater 오름차순 순으로 정렬한다.이문제같은 경우 나는 이
기타레슨어떤것을 최소화, 최대화라는 것은,이 값으로 될까 안될까? 를 따진다음에 lo, hi를 통해서 mid를 만들어서 mid를 중심으로 왔다리 갓다리 하면서=> 결정문제로 만드는 것이다.그래서 이 mid값을 기준으로 레코드판을 채워서 값을 내는 것임.mid가 27이라
용돈 관리 참고한곳 이분탐색 문제이다. 용돈의 최대값을 기준으로 이분탐색을 하는 부분까지 ㅇㅋ. 근데 중간에 Check하는 함수에서 어느 경우에 true, false를 반환해야할 지 몰랐었다.\ 문제가 이해가 잘 안되었었음. 문제의 최대범위를 보고 최대값을
먹을 것인가 먹힐 것인가투포인터 문제임.투포인터가 뭔지는 모름.이렇게 풀었는데 당연히 런타임 에러남.답은 이분탐색 lower_bound를 통해 값을 더해주면된다.lower_bound는 이분탐색으로 통해서 값이나 idx값을 return하는데 없는 값을 탐색할 경우 가장
꽃길이전에 했던부분 재 분석임.이전에는 flowerVisitied랑 visitied두개를 놔두고 탐색을 해서 계속 틀렸었다. 그래서 질문글 올리니까지금 딱 이런경우 하늘색 꽃이 판별이 안된다 내가 이전에 했던 코드처럼 하면이전코드 로직은 그럴싸한데 예외사항을 체크를 못
부등호이전에 어디가 예외사항인줄 몰라서 질문을 올렸었는데이전에 질문한코드알아야할 점이 정수랑 문자랑 비교하기위해서 정수 + '0'을해서 아스키 코드값 맞춰버림.
동전 뒤집기이문제 일단 DFS로 풀려다가 뭔가 이상했음.1행을 뒤집고 1열을 뒤집고 다시 1행을 뒤집는 경우의 수가 존재함.DFS는 아닌거같았음. 어려운 문제를 풀 때는 내가 생각한 로직이 맞지 않다.=> 시간복잡도를 어떻게든 줄여야한다.이 문제는 행만 뒤집으면된다.n
게리 맨더링입력을 주르륵 다 받고 비트 마스킹으로 모든 조합의 경우의 수 다 구한다.모든 경우의 수마다 연결이 제대로 되있는지 아닌지를 확인한다음2등분으로 제대로 나뉜다면 최소값을 구한다.문제가 이해가 안되서 입력 로직 보면서 어떤 문제인지 이해를함.생각한 로직은 맞았
드래곤 앤 던전던전 탐험하면서 최소의 MaxHp로 공주를 구하는 문제이다.예시를 보면알지만 범위가 크기 때문에 long long사용해야한다.용사 공격력 1이고 용체력 100만, 공격력 100만, 던전 10만개일경우최대범위가 10만 100만 100만이다.로직은 맞았는
알파벳밟은 알파벳은 다시는 못밟고 최대한 깊숙이 들어갈 때 그 깊이 값을 구하는 문제이다.본인은 DFS로 품.이전에 풀었던 문제인데 DFS말고 다른 방법이 생각이 안나서 다시 DFS로 풀었는데이 문제는 DFS + 비트 마스킹으로 visited와같은 배열을 관리하지 않고
경사로열 탐색은 캐시 프렌들리 하지않다.그래서 "대칭행렬"을 만들어서 같은 함수를 호출 두번만 해주는 식으로 바꿔야한다.(전치행렬)cnt 늘려주는 부분도 올라갈 경우 ++cnt하다 l과 같은지보고 cnt를 음수까지 확장해서 ++cnt해서 0과 값을 비교한다.해설강의 못
파닭 분석 길이가 다른 파로 입력값에 따라 최대의 파길이로 파닭만드는 문제임. 후기 ZeroDivision이 계속 났었는데 ll lo의 값을 0부터 시작을 해버려서 틀렸었음. 길이는 1부터 시작할 수 있게 함. cpp
가르침a, b, c 있을 때 해당 문자를 배웠냐 안배웠냐를 따지는거임."abc", "bac" 이런거 순서에 상관없이 체크만 하면된다. => "조합"이다. (비트마스킹을 통한)abc를 배우면 7이라고치자 (a = 1, b = 2, c = 4)그리고 bc, ab라는 단어가
막대기쪼개고 쪼개고 쪼개었을 때 합이 x가 되는지를 확인좀 쉬운 느낌이 들었지만 중간에 문제뜻을 확인하는데 조금 햇갈렸음."합이 x보다 크다면 가지고있는 막대중 길이기 가장 짧은 것을 절반으로 자른다"이부분에서 막대가 하나일 경우 뭐가 가장 짧은건지 말이 이해가 안갔었
놀이공원일단 무조건 그림으로 그리자나한테 가장 잘 맞는 방법인거같다. 팔짱끼고 아무리 생각해도 그림을 그려서 이해하는 것보다 좋은 방법은 없는거같다.이렇게 1번 2번 3번 놀이기구 순대로 그려보았지만 20억명을 어떻게 나눌지 감이 안잡혔었다.해답은 시간박스를 놔두어서
성곽내제출Connected Coponent 가 생각이 남.또한 DFS랑 비트연산자를 통해서 뭐 for문을 돌려서 1번 2번 출력은 우째우째 구했음.근데 3번 벽을 뚫어서 가장넓은 방 넓이를 구하는 부분에서 cp라는 변수로 cp가 2이상일때 다시 DFS를 한번 더 돌려서
11723처음제출틀렸는데 질문한 코드틀렸습니다.가 계속 뜨는데 왜 뜨는지 이유를 모르겠음.틀질코 생각을 좀 더 해야함.비트연산자로 이래이래 쉽게 풀 수 있었다.어떠한 상태값만을 빼기를 원할 때 remove부분처럼 비트를 반전시킨다음에 &연산자를 통해 딱 어떠한 상태값만
종이조각일단 시간안에 다 못 풂.4X4일 경우 도대체 어떻게 나누어야할지를 갈피를 못잡음문제 이해가 안가는 부분이 행부분 쭉 다 더한거랑 열부분 쭉 다 더한거랑 비교해서 큰게 가장 크게 종이 조각을 나눈거 아닌가? 라는 생각이 드는데...숫자 0이 있기 때문에 안된다.
가장 긴 증가하는 부분 수열51시간 반정도 했는데 못 품."trace"개념이랑 가장 긴 부분 수열 조차 생각이 안났다.이런식으로 구현을 할려고 했는데 이전에 배웠던 것도 까먹고 생각도 안났다. (훑는 식의 복습이라도 해야하는 듯하다)또한 lower_bound를 사용해야
AC2시간 30분 정도 품. => 못 풀었다.입력을 받는부분부터 조금 버벅거림.cin >> a; cin.clear(); 이런식르로 하나하나 clear() 해가며 받아주는 식으로 햇었음.내가 생각한로직은 어쨋든 입력을 다 받은다음에매번 뒤집으면 시간초과가 날거같아서,함수