목록Python (229)
라떼는말이야
문제 설명 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 제한사항 - 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. - completion의 길이는 participant의 길이보다 1 작습니다. - 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다. - 참가자 중에는 동명이인이 있을 수 있습니다. 입출력 예 입출력 예 설명 예제 #1 "leo"는 참여자 명단에는 있지만..
Summer/Winter Coding(~2018) 의 소수 만들기 문제이다. 문제 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 소수가 되는 경우의 개수를 return 하도록 solution 함수를 완성해주세요. 제한사항 nums에 들어있는 숫자의 개수는 3개 이상 50개 이하입니다. nums의 각 원소는 1 이상 1,000 이하의 자연수이며, 중복된 숫자가 들어있지 않습니다. 입출력 예 입출력 예 설명 입출력 예 #1 [1,2,4]를 이용해서 7을 만들 수 있습니다. 입출력 예 #2 [1,2,4]를 이용해서 7을 만들 수 있습니다. [1,4,6]을 ..
BFS (너비 우선 탐색, Breadth First Search) 최단 거리, 최소 비용과 같이 최솟값과 관련된 문제 해결에 사용. 이때 그래프의 가중치(시간, 비용, 거리 등)가 1이어야만 한다. 모든 경로에 대한 동시 탐색 가능. 최대 경로를 몰라도 사용 가능 → 최단 거리, 최소 비용 등을 구하기 좋다. 큐(Queue) 사용. → FIFO 구조 절차 저장된 정점 중 첫 번째 정점을 선택하여 저장된 정점에서 제거 제거한 정점에서 해야 할 작업 진행 제거한 정점과 연결된 정점 중 방문하지 않은 모든 정점 저장(2, 3번은 순서가 바뀌어도 됨) 저장된 정점에 모든 노드가 제거될 때까지 1~3번 과정 반복 1번 정점 탐색 시작 시작 정점을 저장한 뒤 방문 표시(회색 처리). 첫 번째 단계로 저장된 첫 번째..
투 포인터(two pointer) 배열에서 두 개의 포인터를 이용해 양 끝에서 탐색해 나가며 답을 찾는 방식 Q. 주어진 배열에서 합이 27인 경우를 찾아라 최초에 맨 끝인 1과 28을 가리킨다. 찾아야 하는 값(27)이 29보다 작으므로 오른쪽 포인터를 하나 감소시킨다. (1, 25 가리킴) 찾아야 하는 값(27)이 26보다 크므로 왼쪽 포인터를 하나 증가시킨다. (3, 25) 찾아야 하는 값(27)이 28보다 작으므로 오른쪽 포인터를 하나 감소시킨다. (3, 22) 찾아야 하는 값(27)이 25보다 크므로 왼쪽 포인터를 하나 증가시킨다. (5, 22) 찾아야 하는 값(27)이 두 포인터가 가리키는 값의 합과 같으므로 5와 22를 return 한다. 또 다른 순서쌍이 존재할 수 있으니 계속 진행한다. ..
1. 설치 파일 다운로드 우분투의 Firefox에서 https://www.anaconda.com/distribution/#download-section에 접속한다. 가장 밑으로 쭉 내려보면 다음과 같은 창이 있다. 파이썬은 2.x 버전과 3.x 버전이 있다. 둘은 문법 차이가 존재하며, 앞으로는 Python 3.x 버전이 더 발전하고, 많이 쓰일 것이기 때문에 굳이 Python 2.x 버전으로 구현된 프로그램을 뜯어보거나 유지보수해야 하는 일이 아니면 3.x 버전을 설치하는 것을 추천한다. 그러나 '인공지능 보안을 배우다' 책에서는 파이썬 2.x 버전을 사용하기 때문에 현재 실습에서는 64-Bit (x86) Installer을 눌러 설치파일을 다운로드한다. 따로 경로를 지정하지 않았다면 ~/Downloa..