목록분류 전체보기 (81)
MyPrograming
알고리즘 및 코딩 테스트를 풀어나갈 때 수행시간을 체크하는 것은 매우 중요하다. 요구하는 결과에 맞는 답이 return 되더라도 이의 수행시간이 문제에서 요구하는 시간을 넘어서면 해당 문제에서는 탈락의 기준이 된다. 파이썬에서는 아래의 코드를 통해서 짜여진 소스코드의 실행시간을 체크할 수 있다. import time start_time = time.time() #시간 측정 시작 ' ' #프로그램 소스 코드 ' ' end_time = time.time() #시간 측정 종료 print("time:", end_time-start_time) #총 수행시간 출력

Q. 정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다. arr은 길이 1 이상인 배열입니다. 인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다. def solution(arr): answer = [] arr.remove(min(arr)) if len(arr) != 0: answer.extend(arr) else: answer.append(-1) return answer 처음엔 반복문으로 요소에 하나하나 직접 접근하려했지만 처리시간에 대한 효..

Q. 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 AB는 1만큼 밀면 BC가 되고, 3만큼 밀면 DE가 됩니다. z는 1만큼 밀면 a가 됩니다. 문자열 s와 거리 n을 입력받아 s를 n만큼 민 암호문을 만드는 함수, solution을 완성해 보세요. 공백은 아무리 밀어도 공백입니다. s는 알파벳 소문자, 대문자, 공백으로만 이루어져 있습니다. s의 길이는 8000이하입니다. n은 1 이상, 25이하인 자연수입니다. 문제를 보고 처음에는 모든 알바펫을 담아놓은 리스트가 필요하다 생각해서 하나하나 작성하고 있었다. 심지어 소문자, 대문자를 따로따로 해놓은 2개의 리스트를 별도로 손수 작성하고 있자니 이게 맞나싶어서 찾아보았다. 정말 ..

Q. 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있습니다. 예를 들어, 4번 학생은 3번 학생이나 5번 학생에게만 체육복을 빌려줄 수 있습니다. 체육복이 없으면 수업을 들을 수 없기 때문에 체육복을 적절히 빌려 최대한 많은 학생이 체육수업을 들어야 합니다. 전체 학생의 수 n, 체육복을 도난당한 학생들의 번호가 담긴 배열 lost, 여벌의 체육복을 가져온 학생들의 번호가 담긴 배열 reserve가 매개변수로 주어질 때, 체육수업을 들을 수 있는 학생의 최댓값을 return 하도록 solution 함수를 작성..

Q. 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 participant의 길이보다 1 작습니다. 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다. 참가자 중에는 동명이인이 있을 수 있습니다. 처음에는 단순히 리스트를 다루는 문제라고 생각했다. 그러면 매우 단순한 문제라고 생각이 들 수 있다...

Fork fork는 타인의 깃허브 repository에서 오픈소스 상태의 코드나 파일들을 내 repository에 그대로 복사하여 특정 기능을 수정하거나 추가하여 사용하고 싶을 때 사용하는 Github의 기능이다. 이 때, fork한 나의 저장소와 원본의 저장소는 서로 연결되어 있기때문에 원본 저장소의 변화된 부분을 그대로 내 fork 저장소에 반영시킬 수 있다. 나는 최근에 3명의 팀원을 꾸려서 독립서점과 관련된 웹 플랫폼 프로젝트를 진행하면서 원본 저장소는 다른 팀원의 repository로 지정해두고, git의 협동 기능을 통해 각자 분담하여 작업한 내용을 지속적으로 push하고 병합하는 과정을 반복하면서 fork된 나의 repository에는 프로젝트 초기상태만 반영되어 있는 것을 보고 작업이 끝난..
1. Docstring docstring은 모듈, 함수, 클래스 또는 메소드 정의의 첫 번째 명령문으로 발생하는 문자열 리터털로 소스 코드에 포함된 문서(documentation)라고 할 수 있다. docstring은 기본적으로 리터럴 문자열이며, 로직의 일부분을 문서화하기 위해 코드 어딘가에 배치된다. 특히 문서라는 단어에 주목해보면 이는 주석과는 확실히 다르다는 것이다. 주석을 다는 습관은 좋지 않은 것이다. 주석을 다는 것은 코드로 아이디어를 제대로 표현하지 못했음을 의미한다. 코드의 변경에 따라 주석도 주기적으로 업데이트 해줘야하지만 대부분의 사용자가 이를 간과하거나 주석을 먼저 확인 한 후에 코드의 동작을 이해하는 것은 오해를 불러일으킨다. 1-1. Docstring 사용법. def my_fun..

1. REST의 개념 1-1) REST (Representational State Transfer) HTTP URI를 통해 자원을 명시하고, HTTP Method를 통해서 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미한다. 즉 자원 기반의 구조설계의 중심에 Resource가 있고 HTTP Method를 통해 Resource를 처리하도록 설계된 아키텍쳐를 의미하는 것이다. HTTP Method - POST, GET, PUT, DELETE CRUD Operation - 데이터의 기본적인 처리에 대한 Create, Read, Update, Delete 기능을 일컫는 말 이러한 REST가 필요한 이유는 애플리케이션의 분리 및 통합, 다양한 클라이언트의 등장으로 인해 최근의 서버 프로그램은 다..