알고리즘 코딩 테스트
알고리즘 코딩 테스트
알고리즘 코딩 테스트
코딩 테스트 알고리즘 공부
문제 링크순회한 단어들은 리스트에 넣어 안에 있는 지 not in 배열 을 써서 확인하고, 알파벳의 끝 단어와 앞 단어가 같은지 확인을 AND 연산자를 써서 확인한다.탈락자에 해당하는 반환 값은 나머지 연산자와 몫을 구하는 연산자에 +1을 더하여 계산한다.앞 단어가 뒷
무작정 쓰면서 생각한 문제였다. 리스트 함수만 잘 이용하면 생각보다 쉽게 풀릴 것이라 생각했다. 리스트 함수들을 참고해서 풀면 쉽다!Git
더 간결하게해시 즉 요소의 중복이 불가능한 내장모듈 collection 자료형 Set을 사용했다.처음 접근은 잘 했지만, 문제를 어떻게 풀어나가야 할지 모르겠어서 코드를 참고하여 해석한 결과 직관적으로 작성해야하는 것을 알았다.처음에는 아래와 같은 코드로 참고한 코드
해당 문제 링크Git처음 차집합을 사용하면 쉽게 풀릴 것이라고 생각하고 set()함수를 사용하여 집합으로 만든 뒤 p-c로 차집합을 실행했지만, 동명이인이 있을 경우의 오류가 생겼다.집합으로 선언하면 중복이 불가능하여 동명이인의 한 명은 사라지게 된다. 그렇다면 중복이
해당 문제 링크zip()여러 개의 순회 가능한(iterable) 객체를 인자로 받고, 각 객체가 담고 있는 원소를 튜플의 형태로 차례로 접근할 수 있는 반복자(iterator)를 반환참고 사이트처음 작성한 코드는 아래와 같다. 이때 phone_book 가장 앞에 나오는
해당 문제 링크Git - 소스 코드람다식 lambda :reduce()"from functools import reduce"기본적으로 초기값을 기준으로 데이터를 루프 돌면서 집계 함수를 계속해서 적용하면서 데이터를 누적하는 방식으로 작동여기서, 집계 함수는 두개의 인자
문제 해당 문제 링크 풀이 결과 해석 > sort, sorted의 Parameter key, reverse 매개변수를 갖고 있음 key : 정렬을 목적으로 하는 함수를 값으로 넣음, 정렬할 기준을 정할 수 있음 : lambda를 이용할 수 있음 > 풀이 코드 중
해당 문제 링크Git - 소스 코드문제 접근이나 푸는 건 어렵지 않았지만, 쓰는 문법들을 잘 알아야 풀 수 있었다.순열(permutations)를 사용하는 것과 .join을 쓰는 것이다.res 배열에 값을 이어서 주고 싶다면 .join을 쓰게 되는데 이때 배열 변수에
해당 문제 링크
해당 문제 링크 풀이 1 풀이 2 처음 아래와 같이 코드를 작성하였다.하지만 아쉽게 테스트에 통과하지 못했다..좀 더 고민했지만 더 이상 생각이 안들어 다른 사람의 코드를 참고하여 제일 이해가 쉽게 된 코드로 작성했다.풀이 1brown = ab-yellow = ab-
해당 문제 링크leaves에는 모든 계산 결과가 담겨있다.재귀를 사용하여 문제를 해결한다.<img src="https://velog.velcdn.com/images/petcu1004/post/b3aa2940-7425-4b1b-a7a7-934a177f7c3
해당 문제 링크
Level 3 문제 해당 문제 링크 정답 1 - BFS 정답 2 - DFS 풀이 각 코드에 대한 풀이는 주석에 상세히 적었다. 그래도 정리해보고자 한다! 기본 동작 원리 BFS(너비 우선 탐색) > 1. 현재 노드와 연결된 노드 중 방문되지 않은 모든 노드에 대
해당 문제 링크코드 참고 사이트코드 참고 사이트코드 참고 사이트DFS를 이용해 모든 티켓을 사용하는 경로를 탐색합니다. 이때 DFS의 순서를 스택에 저장했다가 스택 top에서 갈 수 있는 경로가 없을 경우에 answer에 추가합니다. 갈 수 있는 경로가 없다는 것은 그
해당 문제 링크words 내의 단어들을 list()를 써서 dog 라면 d, o, g로 나눠 앞선 단어와 2개가 맞는다면 방문체크하고, 이를 사용하도록 하고, cog를 찾을 때까지 돌려서 루트를 세는 것이다. 구현하면서 성능 문제가 있을 것 같다고 생각은 했지만..역시
해당 문제 링크아래와 같은 구조로 만들어진다.1인 테두리만 따라가서 최단거리를 구한다.주어진 좌표에서 그대로 하게 되면1칸 차이밖에 안난다면, 테두리가 겹치게 된다.그리하여 전체 좌표에 2배를 주고 테두리를 잡았다아이템을 주웠다면 그때 //2로 나누기를 하여 돌아온다!
해당 문제 링크처음에는 파이썬 라이브러리 중 순열 함수를 사용해서 했지만, 그 이후 튜플()에 들어있고, 이를 어떻게 꺼내써야하나 이것저것 코드 작성하다가 결국 DFS, BFS 까지 구현하려고 하는데 아무래도 그럴 필요는 없을 것 같아서 다시 순열을 사용하였다.헷갈리는
해당 문제 링크레벨 낮은 문제인데도... 못풀었다ㅠㅠ그래서 다른 사람의 코드를 참고해서 해결했다.파이썬 라이브러리 함수 product를 이용하여 풀었다!중복순열 함수를 쓰니 쉽게 풀렸다.자세한 문법은 아래 설명을 보면 알 수 있다.ex)'A', 'E', 'I', 'O'
해당 문제 링크 BFS를 이용해서 풀 것 같은 느낌은 있었지만, 어떻게 접근해서 풀어야할지 막막했다.코드를 참고하며 이렇게 코드를 짜는 법이 있구나를 알며 문제를 풀어보았다.크게 풀이 과정을 언급하자면, 이차원 그래프인 graph를 생성하고하나의 송전탑을 기준으로 연결
해당 문제 링크N의 개수를 알아야 한다.최솟값이 8보다 크면 -1을 return 하기 때문에 N을 8개까지 써서 표현할 수 있는 집합을 구해보고자 한다!N을 1개 사용해서 표현할 수 있는 수의 집합은?N을 2개 사용해서 표현할 수 있는 수의 집합은?N을 3개 사용해서
해당 문제 링크업로드중..가장 최악의 경우로 모두 심사하여 걸리는 수를 right으로 한다. 즉 60분이다입출력 예로 보면, 7분 10분 심사하는 심사위원이 있는데, 10분 심사위원이 n의 값인 6명을 모두 본다고 가정하여 max(times)n = 106 = 60분 걸
해당 문제 링크우리는 바위를 n개 제거한 뒤 각 지점 사이의 거리의 최솟값 중에 가장 큰 값을 구해야한다!n개의 돌을 징검다리에서 제거했을 때 최소 거리가 기준이다.최솟값(left)은 징검다리에 돌이 겹쳐있는 경우는 없기 때문에 (시작지점) --- (돌) 로 그 사이의
해당 문제 링크시계방향으로 회전하기 때문에 8의 숫자를 갖고 있는 칸을 일단 빈 것으로 치고 미리 값을 저장해놓는다.코드 상에서는 tmp 변수에 8의 값을 넣었다.그리고, 비어있는 부분을 시계방향으로 채우기 때문에 14값이 위로 올라오고 하나씩 시계방향으로 움직이게 한
해당 문제 링크위와 같은 코드로 작성하니 런타임 에러나 시간 초과 문제가 있었다..이런 문제를 어떻게 해결할 수 있을지 찾아보며 작성했지만, 해결이 어려워서 다른 사람의 코드를 참고하였다.런타임 에러가 나는 이유는 재귀에서 depth가 너무 들어가 너무 깊어 생기는 문
해당 문제 링크어떻게 이렇게 풀었고, 필자가 처음 접근했던 실수를 알고 싶다면 풀이를 천천히 읽어나가는 것을 추천한다..코드를 보면 알수 있듯이 위와 같이 작성하면 안된다.위와 같이 작성하면 모든 행이 같은 객체로 인식된다.이러한 문제가 발생한다.참고 사이트안에 whi