문제 페이지 접근방법 백트래킹 이미 문제에도 명시가 되어 있듯이 정답이 3보다 큰 값이거나 불가능한 경우에 -1을 출력합니다. 즉, 재귀함수의 depth에 제약을 걸어 가지치기를 할 수 있다는 말입니다. 저는 depth가 3에 도달하게 되면 더 이상 재귀 함수를 돌지 않게 설정했습니다. 로직 2차원 Array 형태로 사다리 Map을 그려준다 우측으로 이동하는 사다리는 1, 좌측으로 이동하는 사다리는 -1을 넣어준다. 내려가는 사다리는 0이다. 모든 설치 가능한 구역에 사다리를 설치하는 브루트포스 문제이다. 그렇기 때문에 모든 구간을 순회하는 DFS를 사용한다. 각 사다리 별로 번호에 맞게 내려오는지 확인한다. 만약 맞다면, 정답을 갱신한다 만약 틀리다면, 가로 사다리를 계속해서 설치한다. Python C..
문제로 이동 접근 방법 누적합+이분탐색 카테고리여서 이분 탐색을 어떻게 사용할지 고민했습니다. 1. 전처리 배열 1개의 경우, 누적합을 구하기 위해 A[0] ~ A[n] 까지 배열을 순회하며 누적합을 넣어주지만 해당 문제를 이렇게 접근해버리면 안된다는 것은 알고 계실겁니다. # 일반적인 배열 1개의 누적합 arr = [0,1,2,3,4,5,6,7,8,9] for i in range(1,len(arr)): arr[i] = arr[i-1]+arr[i] # result : [0,1,3,6,10,15,21,28,36,45] 2개의 배열이기 때문에 이런 의문이 생길 수 있습니다. "각 배열의 비교 범위를 어떻게 선택할 것인가?" B 배열의 탐색 index가 하나 증가하게 되면 A 배열의 index는 처음으로 돌아..
문제로 이동 이번 글에서는 문제에 대한 설명과 풀이보다 골드 난이도임에도 불구하고 무려 11WA를 받게된 이유, 그리고 드디어 Solved 할 수 있었던 이유를 찾고 포스팅 했습니다. 혹시 "맞는데 왜 틀려" 늪에 빠져있다면 이 글을 보았을 때 도움이 될 수 있습니다😀 과거의 흔적 틀렸던 이유 1. RecursionError Python의 경우 재귀 함수의 깊이가 1000으로 고정되어 있습니다. 만약 1000번보다 더 큰 재귀를 돌기 위해선 Recursion을 설정해줘야 합니다. 5개월 전 당시엔 이를 DFS로 풀다가 놓쳤던 것 같네요 2. 시간초과 및 틀렸습니다 과거의 코드를 보니 빙산이 분리되는 구간에서 줄일 수 있는 로직이 보였고, 애초에 너무 복잡하게 생각을 했는지 코드가 직관적이지 못합니다 ㅠㅠ..
자세한 문제 설명은 없습니다 테스트 환경 총 7문제 출제 9/11(토) 오후 2시 ~ 7시 (5시간) 프로그래머스에서 응시 IDE 사용 가능 후기 너무 오랜만이라 코딩테스트 감을 잃지 않았을까 걱정했었는데, 잃을 감이 없지 않았나..?는 생각이 들었습니다. 늘 코딩테스트 후엔 겸손해지는 것 같습니다. 확실히 상반기보다 난이도가 쉬워진 것 같았고 괜히 겁먹고 너무 어려운 알고리즘을 떠올릴 필요는 없었던 것 같습니다. 트리 관련 문제만 나오면 세그먼트 트리를 떠올리는 병(?)이 있는데 이번에도 역시나 세그먼트를 안써도 풀 수 있는 문제들이었습니다. 조금만 더 침착하게 접근했더라면 여유있게 6Solved를 했을텐데 많이 아쉬웠습니다. 끝나고.. 바로 4번과 7번을 제외한 문제 복기를 했고 imos라는 알고리즘..
22.06.04) 해당 글은 Dead Lock이 아닌 단순 커넥션 누수의 문제입니다. ※ Hikari, Connections pool, dead lock에 대한 설명이 포함되어 있지 않습니다 결론부터 말하자면 저의 경우엔 개발자의 실수였습니다. 체감상 2주 동안 걸쳐서 발견됐던 에러인데 막상 찾고보니 허무하기도 하고, 이와 동시에 커넥션 풀을 공부할 수 있어서 좋은(?) 기회였다고 생각합니다. 해결 방법은 가장 아래에 있습니다. 어떤 친구였나 spring-compose | 2021-08-05 13:05:52.412 WARN 7 --- [io-8080-exec-10] o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 0, SQLState: null spring-c..
SSAFY 내 보안에 따라 강의 내용에 대한 설명은 없습니다. 맥북살까요? 싸피에서 불편함을 감수하고도 감성을 택하겠다 또는 미래를 위해(취업 이후까지 바라보고) 맥북을 쓰겠다 => 맥북 뭐 안되고 맥북 안될 수도 있다는 주의 듣기 싫다. 불편한거 딱 질색이다. => 그 외 노트북 정말 단골 질문입니다. 약간의 불편함을 감수할 수 있다면 맥북 쓰셔도 상관없습니다만, 매 시험이나 특정 행사때 "Windows 환경을 권장합니다" 문구를 자주 보실텐데 그 때마다 흔들리지 않을 자신 있으시면 맥북을. 맥북은 취업후에나 쓰겠다 하신다면 그 외 노트북을 구비하시는게 좋겠습니다. 합격 후 뭘 하면 좋을까요? 선택은 자유입니다. 알고리즘이나 언어 공부를 미리 하셔도 좋고 마음껏 노셔도 좋습니다. 저는 적당히 놀면서 백..
모든 내용은 딜리버리 히어로 코리아의 방침에 따라, 문제를 유출하지 않는 선에서 기재되어 있습니다. 코딩테스트 환경 IDE 사용 가능 Codility 환경(참고 : 2021.06.21 - [풀이/코딜리티(codility)] - [Codility] Lesson4 PermCheck 풀이 Python) Codility이기 때문에 모든 문제가 영어 언어는 사전에 정해야하며 선택한 언어로만 코테를 칠 수 있음 (사전에 이메일로 확인합니다) 채점 결과 비공개(Testcase는 채점 됩니다) 제한시간 120분 총 3문제 포트폴리오를 함께 제출해야함 난이도 세 문제 모두 해결했으며 120분 중 72분 소요되었습니다. 문제가 영어로 나오기에 독해에 꽤나 시간을 쏟았습니다... ㅠㅠ 그나마 Codeforces에서 갈고닦은..
문제로이동 1016번: 제곱 ㄴㄴ 수 어떤 수 X가 1보다 큰 제곱수로 나누어 떨어지지 않을 때, 제곱ㄴㄴ수라고 한다. 제곱수는 정수의 제곱이다. min과 max가 주어지면, min과 max를 포함한 사이에 제곱ㄴㄴ수가 몇 개 있는지 출력한다. www.acmicpc.net 문제 설명 에라토스테네스의 체 응용 문제입니다. 최대 범위는 1백만, 최대 수는 1조이기 때문에 정수형(long long)과 시간초과에 주의해야 합니다. 제곱 수로 나누어 떨어지지 않을 때 제곱ㄴㄴ수라 한다. 제곱수는 아시다시피 아래와 같습니다. 2*2 = 4 3*3 = 9 4*4 = 16 ... 에라토스테네스의 체는 아래와 같습니다. 단순하게도 특정 범위에서 제곱수를 에라토스테네스의 체로 걸러내는 방식을 구현하면 됩니다. 즉, 2의 ..
문제로이동 MaxCounters coding task - Learn to Code - Codility Calculate the values of counters after applying all alternating operations: increase counter by 1; set value of all counters to current maximum. app.codility.com 목차 문제 설명 체감상 Lesson4 테스트 문제 중 해결하는데 가장 오래걸렸습니다. 입력 값으로 N과 배열 A가 입력됩니다. 최종적으로 N개 만큼의 카운터를 출력해야 하고 N=5일 때 (0, 0, 0, 0, 0)과 같은 형식으로 출력 이 카운터를 어떻게 연산하느냐가 관건입니다. 예제를 보며 기능을 설명하겠습니다. A[..
문제로이동 MissingInteger coding task - Learn to Code - Codility Find the smallest positive integer that does not occur in a given sequence. app.codility.com 목차 문제 설명 양수인 정수 중에서 배열에 없는 가장 작은 값을 출력하는 문제입니다. 너무 간단한 문제라 바로 예제부터 보겠습니다. [1,2,3]의 경우 배열에 없는 가장 작은 정수인 4가 나옵니다. [-1,-3]의 경우 배열에 없는 가장 작은 정수인 1이 나옵니다. [1,3,6,4,1,2]의 경우 배열에 없는 가장 작은 정수인 5가 나옵니다. 접근 방법 어쨌든 모든 배열을 탐색해야 하므로 O(N)의 시간 복잡도를 갖습니다. 입력 범위..