전체 글

전체 글

    [프로그래머스] 완주하지 못한 선수 - python3

    문제 설명 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 제한사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 participant의 길이보다 1 작습니다. 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다. 참가자 중에는 동명이인이 있을 수 있습니다. 입출력 예 participant completion return ["leo", "kik..

    [프로그래머스] 2020 카카오 인턴십 키패드 누르기 - python3

    [프로그래머스] 2020 카카오 인턴십 키패드 누르기 - python3

    문제 설명 스마트폰 전화 키패드의 각 칸에 다음과 같이 숫자들이 적혀 있습니다. 이 전화 키패드에서 왼손과 오른손의 엄지손가락만을 이용해서 숫자만을 입력하려고 합니다. 맨 처음 왼손 엄지손가락은 * 키패드에 오른손 엄지손가락은 # 키패드 위치에서 시작하며, 엄지손가락을 사용하는 규칙은 다음과 같습니다. 엄지손가락은 상하좌우 4가지 방향으로만 이동할 수 있으며 키패드 이동 한 칸은 거리로 1에 해당합니다. 왼쪽 열의 3개의 숫자 1, 4, 7을 입력할 때는 왼손 엄지손가락을 사용합니다. 오른쪽 열의 3개의 숫자 3, 6, 9를 입력할 때는 오른손 엄지손가락을 사용합니다. 가운데 열의 4개의 숫자 2, 5, 8, 0을 입력할 때는 두 엄지손가락의 현재 키패드의 위치에서 더 가까운 엄지손가락을 사용합니다. 4..

    그래프

    Least Common Ancestor 스패닝 트리 더보기 백준문제 - 집합의 표현 (1717) - 줄세우기 (2252) - 네트워크 연결 (1922) - LCA2 (11438) - 키 순서(2458) - 게임 개발(1516) - 교수님은 기다리지 않는다 (3830) - 도로네트워크 (3176) - 두번째로 작은 스패닝 트리(1626) 더보기 백준문제2 - 단절점 (11266) - 최단경로 (1753) - 타임머신 (11657) - 플로이드 (11404) - 단절선 (11400) - 할로윈 묘지(3860) - 거의 최단 경로(5719) - K번째 최단경로 찾기 (1854)

    정수론과 조합론

    유클리드 호제법 : 2개의 자연수의 최대공약수를 구하는 알고리즘의 하나이다. 2개의 자연수 a, b에 대해서 a를 b로 나눈 나머지를 r이라 하면 (단, a > b), a와 b의 최대 공약수는 b와 r의 최대공약수와 같다는 성질을 이용한다. 1. a % b = r 2. gcd(a, b) = gcd (b, r) static long gcd(long a, long b) { while(b != 0) { long r = a % b; a = b; b = r; } return Math.abs(a); } 확장 유클리드 호제법 : 특정 방정식을 만족하는 해를 구할 수 있다. public class P3955 { static int T; static long A, B; public static void main(Stri..

    자료구조

    자료구조(Data Structure)란 효율적으로 접근하고 수정할 수 있도록 데이터를 구성하고 저장하는 방법을 이야기 한다. 자료구조는 저장되는 데이터의 형태에 따라 선형 자료구조와 비선형 자료구조로 구분된다. - 선형 자료구조 : 데이터가 일렬로 나열되어 있음. * 배열 (Array) * 연결리스트 * 스택 * 큐 - 비선형 자료구조 : 데이터가 특정한 형태를 띄고 있음. * 트리 * 그래프 배열 : 가장 기본적인 자료구조로 동일한 자료형의 데이터를 일렬로 나열한 자료구조. * 배열의 특징 - 데이터 접근이 용이. - 데이터 삽입 / 삭제가 어려움 (뒤로 1칸식 밀어주어야함. 최악의 경우 O(n)) - 구조가 간단하여 프로그램 작성이 쉬움. 연결리스트 : 각 노드가 데이터와 포인터를 가지고 일렬로 연결..

    알고리즘 기초

    ### 알고리즘이란? 고대 페르시아의 수학자 알콰리즈미에서 유래되어 문제를 해결하기 위한 여러 동작들의 모임. 알고리즘을 이용하기 위해서는 복잡한 구조의 코드를 정확하게 구현할 수 있는 구현력이 필요하다. ### 알고리즘의 조건 - 정밀성 : 변하지 않는 명확한 작업 단계를 가져야 한다. - 유일성 : 각 단계마다 명확한 다음 단계를 가져야 한다. - 입력 : 정의된 입력을 받아들일 수 있어야 한다. - 출력 : 답으로 출력을 내보낼 수 있어야 한다. - 유한성 : 특정 수의 작업 이후에 정지해야 한다. - 일반성 : 정의된 입력들에 일반적으로 적용할 수 있어야 한다. 깊이우선탐색 (Depth First Search) - 그래프 탐색 방법의 한가지로 한 경로로 탐색하다 특정 상황에서 최대한 깊숙하게 들어..

    백준 1713번 Java 풀이

    후보 추천하기성공출처분류 시간 제한메모리 제한제출정답맞은 사람정답 비율 2 초 128 MB 4956 1579 1271 33.351% 문제 월드초등학교 학생회장 후보는 일정 기간 동안 전체 학생의 추천에 의하여 정해진 수만큼 선정된다. 그래서 학교 홈페이지에 추천받은 학생의 사진을 게시할 수 있는 사진틀을 후보의 수만큼 만들었다. 추천받은 학생의 사진을 사진틀에 게시하고 추천받은 횟수를 표시하는 규칙은 다음과 같다. 학생들이 추천을 시작하기 전에 모든 사진틀은 비어있다. 어떤 학생이 특정 학생을 추천하면, 추천받은 학생의 사진이 반드시 사진틀에 게시되어야 한다. 비어있는 사진틀이 없는 경우에는 현재까지 추천 받은 횟수가 가장 적은 학생의 사진을 삭제하고, 그 자리에 새롭게 추천받은 학생의 사진을 게시한다...

    2. Jupyter Notebook 사용

    2. Jupyter Notebook 사용

    쉘을 그때그때 키지 않고, Python에서 제공하는 Jupyter Notebook을 이용해서, 접속할 수 있다. 먼저 python3와 pip를 설치한다. sudo apt install python3 sudo apt install python3-pip pip를 설치하고 나면, pip를 이용해서 jupyter Notebook을 설치한다. ( pip는 파이썬으로 작성된 패키지 소프트웨어를 설치, 관리하는 패키지 관리 라이브러리이다.) sudo pip3 install notebook notebook을 세팅해주기 위해 python3으로 들어간다. python3 from notebook.auth import passwd passwd() notebook.auth에 passwd 부분을 가져와서 자신이 사용할 패스워드를..