Algorithm

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

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

    [프로그래머스] 코딩테스트 연습2020 카카오 인턴십 키패드 누르기

    [프로그래머스] 코딩테스트 연습2020 카카오 인턴십 키패드 누르기

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

    [프로그래머스] 코딩테스트 연습 연습문제 정수 내림차순으로 배치하기

    문제 문제 설명 함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰 것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를 들어 n이 118372면 873211을 리턴하면 됩니다. 입력 & 출력 입출력 예 nreturn 118372 873211 풀이 과정 1. 정수를 뒤집기 위하여 배열을 사용할 예정입니다. 정수 자체로 배열변환이 어려움으로 문자열로 변경하여 list로 캐스팅합니다. 2. 캐스팅 된 값은 오름차순 정렬이 default로 되어있습니다. 이것을. reverse() 함수를 이용하여 역순으로 정렬해줍니다. 3. 해당 내용을 for 문을 이용하여 answer 문자열로 재구성 해주면 원하는 값을 얻을 수 있습니다. 코드 def solution(n): answer =..

    [프로그래머스] 정수 제곱근 판별

    문제 문제 설명 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요. 입력 & 출력 입출력 예 nreturn 121 144 3 -1 입출력 예 설명 입출력 예#1 121은 양의 정수 11의 제곱이므로, (11+1)를 제곱한 144를 리턴합니다. 입출력 예#2 3은 양의 정수의 제곱이 아니므로, -1을 리턴합니다. 풀이 과정 1. 단순한 제곱근 식을 이용해서 제곱근이 정수 값으로 나오게 되면 제곱근이 맞다고 생각하고 제곱근을 구한 것에 1을 더해서 제곱해준 것을 리턴 2. 아닐 경우에는 -1을 리턴하여 준다. 코드 def solution(..

    [프로그래머스] 코딩테스트 연습완전탐색 최소직사각형

    문제 문제 설명 명함 지갑을 만드는 회사에서 지갑의 크기를 정하려고 합니다. 다양한 모양과 크기의 명함들을 모두 수납할 수 있으면서, 작아서 들고 다니기 편한 지갑을 만들어야 합니다. 이러한 요건을 만족하는 지갑을 만들기 위해 디자인팀은 모든 명함의 가로길이와 세로 길이를 조사했습니다. 아래 표는 4가지 명함의 가로 길이와 세로 길이를 나타냅니다. 명함 번호가로 길이세로 길이 1 60 50 2 30 70 3 60 30 4 80 40 가장 긴 가로 길이와 세로 길이가 각각 80, 70이기 때문에 80(가로) x 70(세로) 크기의 지갑을 만들면 모든 명함들을 수납할 수 있습니다. 하지만 2번 명함을 가로로 눕혀 수납한다면 80(가로) x 50(세로) 크기의 지갑으로 모든 명함들을 수납할 수 있습니다. 이때..

    [프로그래머스] 코딩테스트 연습월간 코드 챌린지 시즌1 3진법 뒤집기

    문제 문제 설명 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 입력 & 출력 입출력 예 nresult 45 7 125 229 새로 사용한 함수 int(str, base) 진법 변환을 위하여 사용되는 함수입니다. str에는 변경할 문자열을 넣고 base에는 해당 문자열이 몇 진수의 숫자를 나타내는 지를 넣어주면 됩니다. 위 식에서 표현한 것과 같이 str으로 넣어주는 것이 포인트 입니다. 풀이 과정 1. 2 8 16진법 같은 숫자는 파이썬에서 지원하는 진법 변환 함수가 있기 때문에 그것을 사용하면서 결괏값의 처음 자리와 두 번째 자리를 슬라이싱 해서 사용하면 되지만 3진법은 지원해주는 ..