https://www.acmicpc.net/problem/1697일반적(?) 으로 풀던 bfs 형식과는 조금 다른 문제여서 당황했다. 결국 bfs의 개념을 묻는 문제이기 때문에 어려움 없이 풀긴 했지만 문제를 많이 푸는게 중요 한거 같다.
https://www.acmicpc.net/problem/22063차원 배열을 도입해서 bfs를 풀어야 하므로 헷갈리는 부분이 많았음.
https://www.acmicpc.net/problem/11725먼가 헷갈린다. 자주 풀어봐야지;;
https://www.acmicpc.net/problem/2644앞에 문제인 '트리의 부모 찾기'를 혼자 힘으로 풀고 살짝 응용만 할 수 있으면 풀 수 있는 문제 인것 같다.
https://www.acmicpc.net/problem/2644쉬운 문제인거 같은데 처음에 map에서 2차원 배열 입력받을 때 실수해서 한참을 디버깅 했다. 근데 map 입력부터 잘못하니깐 파이참에서 디버깅할 부분을 잘 못 짚어줘서 몇분을 낭비했는데 앞으로
https://www.acmicpc.net/problem/2146이거 맨 처음에 풀때는 3.4초가 걸렸는데 두 번째 풀때 0.5초가 걸렸다. 시간 복잡도가 확 줄어들었는데 그 이유를 생각해보니 bfs내에 코드에서 차이가 있는데 첫 번째 풀때는 반복문 안에 mi
https://www.acmicpc.net/problem/1325python3는 안되고 pypy로 하면 12초가 뜨면서 맞았다고 떴다. 근데 12초가 뜨는데 왜 통과가 된건지는 잘 모르겠다;;
https://www.acmicpc.net/problem/14502백트래킹을 이용해서 모든 경우의 벽을 세우는 부분copy를 import해서 bfs 탐색할때 마다 임시 2차원 배열을 생성하는 부분위의 2가지 부분을 확실히 알고가야할 문제이다
https://www.acmicpc.net/problem/75693차원으로 생각해야 해서 살짝 헷갈렸던 문제.그리고 출력 부분에서 좀 에러였다. 다시 한번 볼 필요가 있음
https://www.acmicpc.net/problem/2583문제에 적힌 좌표가 일반적으로 프로그래밍에서 작성하는 좌표랑 달라서 헷갈린 문제이다. bfs 자체는 그냥 쉬운문제이다.
https://www.acmicpc.net/problem/3055세상에 알고리즘 고수는 많다고 느꼈다.. 테스트 케이스 다 통과하고 게시판에 있는 반례 다 통과했는데 왜 틀리나 싶었는데 알고리즘 톡방에 고수분이 바로 문제점을 지적해주셨다! (answer = m
https://www.acmicpc.net/problem/1707다음 그림의 흐름대로 작성하면 된다.여기서 핵심은 이분 그래프 탐색하는 방법을 떠올리는 것과 이분 그래프의 조건을 알고 있는 것이다.https://vixxcode.tistory.com/2
https://www.acmicpc.net/problem/1987dfs와 백트래킹을 공부할 수 있는 좋은 문제인 것 같다.
https://www.acmicpc.net/problem/1520그냥 이런 형식의 문제를 많이 풀어보는게 답인듯.이 문제는 그림을 그리면서 풀어야 이해가 잘된다.
https://www.acmicpc.net/problem/1149DP문제를 조금이라도 풀어 봤으면 쉽게 풀법한 문제인데 DP문제를 모르면 좀 해맬것 같은 문제이다.
https://www.acmicpc.net/problem/2579처음에 dp = 0 \* (n+2) 이 부분에서 (n+1)을 했었는데 런타임 에러가 나서 왜 그런지 몰랐는데 질문 게시판을 보니 (n+1)을 하면 n = 1일때 dp2가 없어서 dp2 = max(
https://www.acmicpc.net/problem/11053이거 좀 어려운거 같았는데 코드보니 쉬운거 같다. 근데 이거 처음 풀면 생각하기 좀 어렵고 DP 많이 풀다보면 바로 생각날 것 같은 문제이다.
https://www.acmicpc.net/problem/1932그림 그려서 생각해보면 쉽다.
https://www.acmicpc.net/problem/1912DP문제 풀기전에 항상 식을 써보고 작성하는 습관 들이기 ㅇㅇ!
문제 https://www.acmicpc.net/problem/2156 나의 코드 느낀점 이 문제를 처음 접했을 때 계단오르기 문제하고 비슷해서 쉬운줄 알고 똑같이 작성을 했다가 낭패를 봤다. https://velog.io/@tyjk8997/%EB%B0%B1%EC
https://www.acmicpc.net/problem/14501주석을 최대한 상세하게 쓰긴 썼는데 이해하는데 굉장히 오래 걸렸다.일반 dp문제와는 다르게 뒤에서 부터 세어야 한다는 것을 생각하기 힘들었다.여러번 풀어볼 필요가 있다.
https://www.acmicpc.net/problem/10844뒤에 있는 숫자를 기준으로 앞에 올 수 있는 숫자의 경우의 수를 구할 것이다.자리수마다 각각의 숫자 앞에 올 수 있는 경우의 수가 다르므로 2차원 DP 테이블을 만든다.dpN의 수간단히 n =
https://www.acmicpc.net/problem/11052쉬운 문제인 듯 하면서도 잘 안풀리는 문제
https://www.acmicpc.net/problem/11057앞에 풀었던 쉬운 계단 수 문제랑 비슷하다.https://velog.io/@tyjk8997/%EB%B0%B1%EC%A4%80-DP-%EC%89%AC%EC%9A%B4-%EA%B3%84%E
https://www.acmicpc.net/problem/9251처음 풀면 맞출 수 있을까 하는 문제..;;
https://www.acmicpc.net/problem/2293처음 풀면 맞출 수 있을까 하는 문제..;;n = 2, k = 4인 경우를 살펴보자.이때는 1, 2원의 동전을 가지고 4원을 만드는 경우의 수를 구해야 한다.경우의 수를 구해보면 다음과 같다.1
https://www.acmicpc.net/problem/12865처음에는 쉬운 문제인줄 알고 그림을 작성하고 점화식을 찾은 다음 구현을 하고 제출했다.테스트 케이스 까지 다 통과했기 때문에 맞았을줄 알았는데 틀렸길래 반례를 찾아보니 왜 틀렸는지 알게 되었다.
https://www.acmicpc.net/problem/10942위의 그림을 참조하면서 풀어야 한다.DP를 2차원 배열로 만들어 각각의 인덱스를 S, E라고 가정한 후 팰린드롬 인경우 1 아닌 경우 0으로 두어 풀어야 한다. 자세한 내용은 주석을 참고하면 됨
https://www.acmicpc.net/problem/1463주어진 연산을 반복하여 X를 1로 만들 수 있는 최솟값을 출력하면 된다.각 연산에 대해 좀 더 깊게 알아보자X가 3으로 나누어 떨어진다면? dpn = dpn/3 + 1X가 2로 나누어 떨어진다면?
https://www.acmicpc.net/problem/9465n이 1일 경우스티커 2개가 인접해 있으므로 둘 중 높은 점수를 출력하면 된다.n이 2일 경우마지막 인덱스 1의 입장에서 봤을 때 빨간 체크를 더한 값 또는 파란 체크를 더한 값 중 높은 점수를
https://www.acmicpc.net/problem/1748구현 문제가 은근 까다로움.. 수학문제가 들어가면 더더욱.
https://www.acmicpc.net/problem/1790만약 1부터 구하고자 하는 세자릿수 까지의 자릿수가 100이라고 가정해보자. (터무니없이 작은 숫자 이긴 하지만 쉽게 예시를 들기 위해)이때, k는 만약 99번째 수를 찾고자 하는 경우라면 위의
https://www.acmicpc.net/problem/2805
https://www.acmicpc.net/problem/10816해시 문제아마 이분탐색으로 풀려면 2개 써야하는거 같은데 나중에 풀어보자.반례에 걸려서 틀린 코드
https://www.acmicpc.net/problem/2110이분탐색 문제 중 '어떤 것을 left, right로 두어야 할지'가 중요한 문제이다.이 문제에서 집들 간의 거리를 left, right로 두고 이분 탐색을 돌면서 공유기를 설치하는 개수를 세주었
https://www.acmicpc.net/problem/15649
https://www.acmicpc.net/problem/15650
https://www.acmicpc.net/problem/15651
https://www.acmicpc.net/problem/15652
https://www.acmicpc.net/problem/15654
https://www.acmicpc.net/problem/15655
https://www.acmicpc.net/problem/14888삼성 기출문제
https://www.acmicpc.net/problem/1182느낀점
https://www.acmicpc.net/problem/16234문제 설명 그대로 코드를 구현하면 쉽게 풀 수 있다.자세한 내용은 주석에 달아 놓음.참고 자료
https://www.acmicpc.net/problem/2589문제 설명 그대로 코드를 구현하면 쉽게 풀 수 있다.자세한 내용은 주석에 달아 놓음.참고 자료
https://www.acmicpc.net/problem/1389문제 설명 그대로 코드를 구현하면 쉽게 풀 수 있다.자세한 내용은 주석에 달아 놓음.참고 자료
링크 : acmicpc.net/problem/1003링크 : https://www.acmicpc.net/problem/1012링크 : https://www.acmicpc.net/problem/1074링크 : https://www.acmicpc
링크 : https://www.acmicpc.net/problem/1389링크 : https://www.acmicpc.net/problem/1463큰 수 부터 줄어드는 게 아니라 1부터 시작하는게 핵심링크 : https://www.acmicp
링크 : https://www.acmicpc.net/problem/1676링크 : https://www.acmicpc.net/problem/1697링크 : https://www.acmicpc.net/problem/1764링크 : https&#
링크 : https://www.acmicpc.net/problem/1992링크 : https://www.acmicpc.net/problem/2579런타임 에러가 자꾸 떴는데 배열 생성부분이랑 점화식 세운 부분을 다시 봐야 함.링크 : https
1. 단지번호붙이기(BFS) 링크 : https://www.acmicpc.net/problem/2667 2. AC(★문자열) 링크 : https://www.acmicpc.net/problem/5430 3. IOIOI(문자열) 링크 : https://www.ac
링크 : https://www.acmicpc.net/problem/7569링크 : https://www.acmicpc.net/problem/7576링크 : https://www.acmicpc.net/problem/7662
링크 : https://www.acmicpc.net/problem/9019링크 : https://paris-in-the-rain.tistory.com/94왼쪽 시프트 연산, 오른쪽 시프트 연산 볼 필요 있음링크 : https://www.acm
링크 : https://www.acmicpc.net/problem/11286링크 : https://www.acmicpc.net/problem/11403링크 : https://www.acmicpc.net/problem/11659누적 합을 기록한
링크 : https://www.acmicpc.net/problem/11724링크 : https://www.acmicpc.net/problem/11726링크 : https://www.acmicpc.net/problem/11727규칙만 빨리 찾아
링크 : https://www.acmicpc.net/problem/18870링크 : https://www.acmicpc.net/problem/16928
링크 : https://www.acmicpc.net/problem/1043링크 : https://www.acmicpc.net/problem/1149
링크 : https://www.acmicpc.net/problem/16236
링크 : https://www.acmicpc.net/problem/1167트리의 지름은 아무 노드에서 bfs(dfs도 무관)를 통해 가정 멀리있는 노드를 구한 후 해당 노드에서 bfs를 한번더 진행하여 가장 멀리있는 노드를 구하면 된다.
링크 : https://www.acmicpc.net/problem/1238
https://www.acmicpc.net/problem/3190문제 설명 그대로 구현하면 되는데 변수가 많아서 조금 헷갈린다.가장 핵심은 뱀이 이동할때 꼬리 좌표를 기록하는 변수를 두는것이 아닌가 싶음참고 자료
https://www.acmicpc.net/problem/13458쉬운 문제인데 정답률이 낮아서 의외로 놀랐던 문제총 감독관은 반드시 1명 이상 포함해야 한다는 조건을 가지고 총 감독관을 먼저 배치 후 부 감독관의 인원을 맞춰주면 된다.참고 자료
https://www.acmicpc.net/problem/14499주사위를 굴리는 부분을 처음에 4\*3 배열로 만들었다가 헷갈려서 코드 작성을 제대로 하지못함.주사위는 6면이니 크기가 6인 1차원 배열을 생성한 후 각 인덱스에 따른 주사위의 윗면, 옆면, 밑
https://www.acmicpc.net/problem/14889백트래킹을 통해 모든 경우에 대해 능력치가 최소인 값을 구해주면 됨.참고 자료
https://www.acmicpc.net/problem/14891파이썬 deque자료형의 rotate()를 생각해낼줄 알아야 하고, 재귀에 대한 이해가 있어야 풀 수 있다.함수 내에서 재귀 호출 후 rotate()를 하는 이유도 이 순서가 바뀌면 톱니바퀴 회
https://www.acmicpc.net/problem/15683백트래킹을 이용해 모든 경우의 수에 대해 탐색할줄 알아야 한다.또한 cctv_dir, cctv 번호마다 회전방향을 기록해놓은 리스트를 만들 생각을 해야했는데 못했었다.참고 자료
https://www.acmicpc.net/problem/15684백트래킹을 이용해 모든 경우의 수에 대해 탐색할줄 알아야 한다.그리고 ladder_down() 함수의 알고리즘도 다시한번 볼만하다.또한 line_arrange()의 if ladder_down()
https://www.acmicpc.net/problem/156850세대, 1세대, 2세대 세대가 올라갈수록 회전 방향이 바뀌게 된다.이 회전방향의 규칙을 찾아야 하는데 처음이 만약 d=0, 즉 동쪽으로 간다고 한다면 그 다음은 시계방향으로 90도 회전한 북쪽
https://www.acmicpc.net/problem/15686삼성 기출인 사다리 조작과 비슷한 형태의 백트래킹을 이용한다.최대 m개의 치킨 집을 백트래킹으로 배치한 다음 m개 만큼 치킨 집이 배치된다면 모든 집의 치킨 거리를 구하는 함수를 통해 치킨 거리
https://www.acmicpc.net/problem/16235spring_summer()에 i, j 부분과fall_winter()에 x, y 부분이 있는데fall_winter()에 무심코 i, j를 썼다가 오답이 나옴spring_summer()과 fall
https://www.acmicpc.net/problem/17144문제에 주어진 설명 그대로 작성하면 되긴 한다.하지만 air_cleaner() 부분에서 만약 공기청정기를 만난다면 tmp에 있는 마지막 값까지 pop(0)을 해주어야 하는 부분을 까먹으면 안된다
https://www.acmicpc.net/problem/17143문제에 주어진대로 구현하면 되지만 상어가 이동을 할때는 새로운 함수에 빈 배열을 새로 만들어 모든 상어의 이동이 끝나면 배열을 돌려받는 식으로 하는걸 생각 못했다.참고 자료
https://www.acmicpc.net/problem/1049반복문 내에서 if piece0 \* 6 < package0: 이 부분을 주의 깊게 신경 써줘야 한다. -> 낱개로 6개 사는게 패키지(6개)로 살때보다 싼 경우참고 자료
https://www.acmicpc.net/problem/1543이중 반복문을 통해 구현하면 되는 문제.참고 자료
https://www.acmicpc.net/problem/3085사탕의 위치를 바꾸고 최대 개수를 구하기 위해 함수 호출 후 다시 원위치로 돌리는 부분만 조심하면 됨.사탕의 최대개수를 구하는 함수에서 인접한 곳에 같은 색의 사탕이 있다면 max()를 통해 계속
https://www.acmicpc.net/problem/1748n의 범위가 1억이기 때문에 n을 이용한 반복문을 해서는 안된다는 걸 미리 파악해야 하고 n의 자릿수를 구해서 이를 이용한 반복문을 전개해야 한다.참고 자료
https://www.acmicpc.net/problem/14501DP를 뒤에서 부터 반복문 돌리는게 중요참고 자료
https://www.acmicpc.net/problem/1759골드5 문제이지만 문제 설명 그대로 구현하면 쉬운 문제참고 자료
https://www.acmicpc.net/problem/14889백트래킹(완전탐색)을 활용한 문제참고 자료
https://www.acmicpc.net/problem/15661백트래킹(완전탐색)을 활용한 문제참고 자료
https://www.acmicpc.net/problem/2529백트래킹(완전탐색)을 활용한 문제, 연산자 끼워넣기 문제의 반대?참고 자료
https://www.acmicpc.net/problem/10819순열 라이브러리 쓰고 반복문 돌리면 쉽게 풀 수 있는 문제참고 자료
https://www.acmicpc.net/problem/1182조합 라이브러리를 이용해서 반복문을 통해 해결 - 훨씬 깔끔하고 가독성 있음!조합을 통해 구현하면 되는 문제.참고 자료
https://www.acmicpc.net/problem/11052느낀점
https://www.acmicpc.net/problem/159901차원 DP만 생각하다가 시간 날림2차원으로 생각할 줄 알아야 한다.
https://www.acmicpc.net/problem/1309DP의 정의인 이전 값에 대한 값을 불러올 수 있어야 한다.https://animoto1.tistory.com/entry/%EB%B0%B1%EC%A4%80-1309-%EB%8F%99%EB
https://www.acmicpc.net/problem/11055느낀점
https://www.acmicpc.net/problem/13023DFS를 활용한 문제https://grini25.tistory.com/110
https://www.acmicpc.net/problem/11724DFS, BFS를 활용한 문제재귀에서 한가지 중요한것이 python은 재귀제한이 걸려있기 때문에 재귀 허용치가 넘어가면 런타임에러를 일으킨다. 때문에 sys.setrecursionlimit(10
https://www.acmicpc.net/problem/17779참고 자료
https://www.acmicpc.net/problem/12100너무 어려워서 참고 자료 많이 참고..https://velog.io/@ms269/%EB%B0%B1%EC%A4%80-12100-2048-Easy-%ED%8C%8C%EC%9D%B4%EC%8
https://www.acmicpc.net/problem/21610문제 설명대로 단순 구현하면 쉽게 풀 수 있는 문제
https://www.acmicpc.net/problem/21611구슬 변화 부분에서 빈 구슬만 들어오는 경우 처리를 따로 해주어야함 (히든 케이스 고려)3 10 0 00 0 00 0 01 1구슬이 폭발할 때 반복문 구성에서 마지막 인덱스 까지 깔끔하게 처리해
https://www.acmicpc.net/problem/21609배열의 반시계방향 90도 회전과, 중력 구현하는 법, BFS내의 무지개 블록은 다시 False 처리하는 법 등등 다시 봐야 함.https://velog.io/@mmy789/Python-
https://www.acmicpc.net/problem/21608람다식을 이용한 내림차순+오름차순 정렬이 핵심 (단순 구현 문제)
https://www.acmicpc.net/problem/20058배열의 시계방향 90도 회전 + BFS 탐색에 대한 문제https://velog.io/@mmy789/Python-zip-%EC%9D%B4%EC%9A%A9%ED%95%B4%EC%84%9C
https://www.acmicpc.net/problem/20057구현 문제 - windx, windy 설정하는 부분 다시 보기https://unie2.tistory.com/992
https://www.acmicpc.net/problem/20056구현 문제 - 설명대로 풀면 쉽게 풀 수 있다.다만 continue 이 부분 조심..참고 자료
https://www.acmicpc.net/problem/19237빡구현 문제https://developer-ellen.tistory.com/69
https://www.acmicpc.net/problem/19236DFS + 구현 문제https://developer-ellen.tistory.com/68
https://www.acmicpc.net/problem/17837너무 어려워서 참고 자료 많이 참고..https://unie2.tistory.com/1005
https://www.acmicpc.net/problem/16935문제에 주어진 대로 풀면 되는데 3, 4의 경우 조금 헷갈린다.만약 n != m인 경우에는 90도 회전을 하게 되면 n, m이 서로 바뀌기 때문에n, m = m, n 해주는 부분도 꼭 해줘야 한
https://www.acmicpc.net/problem/16926다시 한번 볼 필요가 있는 문제좌, 우, 상, 하 반복문 구성하는게 좀 어려움참고 자료
https://www.acmicpc.net/problem/17140Counter() 함수 : Counter 생성자에 문자열을 인자로 넘기면 각 문자가 문자열에서 몇 번씩 나타나는지를 알려주는 객체가 반환됩니다.zip() 함수 : 길이가 같은 리스트의 요소를 묶
https://www.acmicpc.net/problem/17142참고 자료
https://www.acmicpc.net/problem/23290fish_move() 부분에 k %= 8 이 부분이 중요한데 좌표 값을 더하기 전에 이 값을 넣어 줘야 한다. 처음에 mx = (i + dxk) % 8 이렇게 설정 했는데 이것은 이미 좌표가 더
https://www.acmicpc.net/problem/20055문제 설명대로 단순히 구현하면 쉽게 풀 수 있음.deque()의 rotate() 정도 배워갈 수 있음.
https://www.acmicpc.net/problem/17822deque()의 rotate() -> rotate()안에 인자가 양수이면 시계 방향, 음수이면 반시계 방향 회전임.circle_remove() 즉, BFS 부분에서 열 끼리 연결 시키기 위해 %
https://www.acmicpc.net/problem/23288문제에서 설명한대로 방향 이동하는 것을 구현하고, 14499 주사위 굴리기 개념에 BFS 탐색만 추가하면 쉽게 풀 수 있다.실제 시험에서도 이렇게만 출제되면 좋겠다!
https://www.acmicpc.net/problem/23289벽 설정하는 법 : 가로벽, 세로벽이 나누어져 있기 때문에 한개의 2차원 배열을 쓰지말고 가로벽(wall_hor) 2차원 배열, 세로벽(wall_ver) 2차원 배열로 나누어서 설정하는게 중요이
https://www.acmicpc.net/problem/19238search() 함수의 기능은 BFS를 이용하여 최단 거리 배열을 반환해주는 역할
https://www.acmicpc.net/problem/5014전형적인 BFS 문제로 숨바꼭질 문제하고 비슷했다.처음에 step 배열을 전부 0으로 초기화 하고 마지막 print()문을 stepG if stepG != 0 else "use the stairs
https://www.acmicpc.net/problem/9205거리가 1000이하인 그래프 끼리 연결해서 BFS로 탐색 후 출발지에서 도착지에 도착할 수 있으면 "happy" 그렇지 않으면 "sad" 출력
https://www.acmicpc.net/problem/12851숨바꼭질 문제와 다르게 '가능한 방법의 개수'까지 출력해야 하므로 도착지(M)에 도착했더라도 멈추지 않고 cnt라는 개수를 세는 배열을 만들어 끝까지 세주어야 한다.
https://www.acmicpc.net/problem/1662너무 어려워서 블로그를 참조 했으며 다시 한 번 풀어봐야함스택 문제의 거의 최고 난이도 인 것 같음https://westmino.tistory.com/78