본문 바로가기

전체 글479

[책리뷰] 파이썬 알고리즘 인터뷰 95가지 알고리즘 문제 풀이로 완성하는 코딩 테스트. 책의 이름에 맞게 기초 알고리즘부터 심화된 알고리즘까지 대부분의 이론들을 포함하고 있으며 해당하는 문제들을 모아 알고리즘 공부에는 좋은 책이었다. 코딩 테스트 위주로 책이 집필되어 있으며 알고리즘 파트가 끝나면 취직, 이직, 코딩 테스트, 면접 등 회사와 관련된 글이 나와 있으며 알고리즘뿐만 아니라 코딩 테스트와 인터뷰를 준비하는 취준생과 이직자를 위한 책이기도 하다. 이 책을 읽으면서 프로그래머스 문제를 풀었는데 많은 도움이 되었고 이 책을 통해서 새로 알게 된 알고리즘들도 많았다. [모두의 알고리즘 with 파이썬] [책리뷰] 모두의 알고리즘 with 파이썬 파이썬 공부를 위해 구매한 책이다. 이 책은 초보자와 비전공자를 위하여 쓴 책이라는 느낌을.. 2020. 9. 1.
[프로그래머스] Level 1 / python 올 클리어 후기 으아아.. 드디어 프로그래머스에 있는 Level 1 문제들을 다 풀었다.. ㅠ 2020.06.28일에 시작해서 2020.08.30에 끝이 났다..! 중간에 한 달 정도(2020.07.06~2020.08.05)는 프로그래머스를 풀지 못해서 거의 한 달 걸린 거 같다.. 문제를 풀면서 테스트 케이스가 틀릴 때마다 계속 고민하다가 결국 인터넷에서 코드를 찾아본 문제들도 있었지만.. 그래도 문제 사이트에서 한 단계를 다 풀어본 적은 처음이다 ㅠ Level 1을 다 풀고 나니 이제는 파이썬에 적응도 되었고 내가 생각하는 데로 짤 수 있는 능력은 길러진 거 같다. 하지만, 아직 시간 복잡도를 생각하지 못하고 있고 깔끔하게는 코딩을 못하는 것 같다..ㅠ 다음부터는 Level 2나 코딩 테스트 고득점 Kit에 도전을 .. 2020. 8. 30.
[프로그래머스] "2018 KAKAO BLIND RECRUITMENT" 비밀지도 문제 설명 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다행히 지도 암호를 해독할 방법을 적어놓은 메모도 함께 발견했다. 지도는 한 변의 길이가 n인 정사각형 배열 형태로, 각 칸은 공백(" ) 또는벽(#") 두 종류로 이루어져 있다. 전체 지도는 두 장의 지도를 겹쳐서 얻을 수 있다. 각각 지도 1과 지도 2라고 하자. 지도 1 또는 지도 2 중 어느 하나라도 벽인 부분은 전체 지도에서도 벽이다. 지도 1과 지도 2에서 모두 공백인 부분은 전체 지도에서도 공백이다. 지도 1과 지도 2는 각각 정수 배열로 암호화되어 있다. 암호화된 배열은 지도의 각 가로줄에서 벽 부분을.. 2020. 8. 30.
[프로그래머스] "2019 KAKAO BLIND RECRUITMENT" 실패율 문제 설명 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스테이지 차이가 너무 큰 것이 문제였다. 이 문제를 어떻게 할까 고민 한 그녀는 동적으로 게임 시간을 늘려서 난이도를 조절하기로 했다. 역시 슈퍼 개발자라 대부분의 로직은 쉽게 구현했지만, 실패율을 구하는 부분에서 위기에 빠지고 말았다. 오렐리를 위해 실패율을 구하는 코드를 완성하라. 실패율은 다음과 같이 정의한다. 스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수 / 스테이지에 도달한 플레이어 수 전체 스테이지의 개수 N, 게임을 이용하는 사용자가 현재 멈춰있는 스테이지의 번호가 담긴 배열 stages가.. 2020. 8. 30.
[프로그래머스] "Summer/Winter Coding" 예산 문제 설명 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 없습니다. 그래서 최대한 많은 부서의 물품을 구매해 줄 수 있도록 하려고 합니다. 물품을 구매해 줄 때는 각 부서가 신청한 금액만큼을 모두 지원해 줘야 합니다. 예를 들어 1,000원을 신청한 부서에는 정확히 1,000원을 지원해야 하며, 1,000원보다 적은 금액을 지원해 줄 수는 없습니다. 부서별로 신청한 금액이 들어있는 배열 d와 예산 budget이 매개변수로 주어질 때, 최대 몇 개의 부서에 물품을 지원할 수 있는지 return 하도록 solution 함수를 완성해주세요. 제한사항 d는 부서별로 신청한 .. 2020. 8. 30.
[프로그래머스] "2020 카카오 인턴쉽" 키패드 누르기(BFS 사용) 문제 설명 스마트폰 전화 키패드의 각 칸에 다음과 같이 숫자들이 적혀 있습니다. 이 전화 키패드에서 왼손과 오른손의 엄지손가락만을 이용해서 숫자만을 입력하려고 합니다. 맨 처음 왼손 엄지손가락은 * 키패드에 오른손 엄지손가락은 # 키패드 위치에서 시작하며, 엄지손가락을 사용하는 규칙은 다음과 같습니다. 엄지손가락은 상하좌우 4가지 방향으로만 이동할 수 있으며 키패드 이동 한 칸은 거리로 1에 해당합니다. 왼쪽 열의 3개의 숫자 1, 4, 7을 입력할 때는 왼손 엄지손가락을 사용합니다. 오른쪽 열의 3개의 숫자 3, 6, 9를 입력할 때는 오른손 엄지손가락을 사용합니다. 가운데 열의 4개의 숫자 2, 5, 8, 0을 입력할 때는 두 엄지손가락의 현재 키패드의 위치에서 더 가까운 엄지손가락을 사용합니다. 4.. 2020. 8. 29.
[프로그래머스] 체육복 문제 설명 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있습니다. 예를 들어, 4번 학생은 3번 학생이나 5번 학생에게만 체육복을 빌려줄 수 있습니다. 체육복이 없으면 수업을 들을 수 없기 때문에 체육복을 적절히 빌려 최대한 많은 학생이 체육수업을 들어야 합니다. 전체 학생의 수 n, 체육복을 도난당한 학생들의 번호가 담긴 배열 lost, 여벌의 체육복을 가져온 학생들의 번호가 담긴 배열 reserve가 매개변수로 주어질 때, 체육수업을 들을 수 있는 학생의 최댓값을 return 하도록 solution 함수를.. 2020. 8. 26.
[책리뷰] 하악하악 (이외수의 생존법) 심심해서 읽어본 책이다. 가볍게 읽기 좋으며 생각보다 재밌고 작가님의 발상이 독특하다..! 본문 159p 과학자들의 이론에 의하면 어떤 사실을 알고 난 다음에는 어떤 방법으로도 알기 이전의 상태로 복원할 수 없다. 그 이론을 사람과의 만남에 적용시키면 어떤 사람을 알고 난 다음에는 알기 이전의 상태로 되돌릴 수 없다는 결론을 유추해 낼 수 있다. 내 머릿속의 지우개 따위로는 완전무결하게 지울 수가 없는 것이다. 그래서 인연은 소중하다. 비록 사이버 공간에서의 만남이라도 가급적이면 아름다운 기억으로 간직할 수 있도록 서로를 배려하자. 하악하악. 본문 190p 오늘의 발견 컴퓨터 모니터에 육안으로는 포착되지 않는 좀벌레가 기생한다는 사실이 밝혀져 충격을 주고 있다. 이 좀벌레는 부드러운 모음만을 갉아 먹는 .. 2020. 8. 26.
[프로그래머스] 크레인 인형뽑기 게임 문제 설명 게임개발자인 죠르디는 크레인 인형뽑기 기계를 모바일 게임으로 만들려고 합니다. 죠르디는 게임의 재미를 높이기 위해 화면 구성과 규칙을 다음과 같이 게임 로직에 반영하려고 합니다. 게임 화면은 1 x 1 크기의 칸들로 이루어진 N x N 크기의 정사각 격자이며 위쪽에는 크레인이 있고 오른쪽에는 바구니가 있습니다. (위 그림은 5 x 5 크기의 예시입니다). 각 격자 칸에는 다양한 인형이 들어 있으며 인형이 없는 칸은 빈칸입니다. 모든 인형은 1 x 1 크기의 격자 한 칸을 차지하며 격자의 가장 아래 칸부터 차곡차곡 쌓여 있습니다. 게임 사용자는 크레인을 좌우로 움직여서 멈춘 위치에서 가장 위에 있는 인형을 집어 올릴 수 있습니다. 집어 올린 인형은 바구니에 쌓이게 되는 데, 이때 바구니의 가장 .. 2020. 8. 25.
[프로그래머스] 카펫 문제 설명 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다. Leo가 본 카펫에서 갈색 격자의 수 brown, 노란색 격자의 수 yellow가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한사항 갈색 격자의 수 brown은 8 이상 5,000 이하인 자연수입니다. 노란색 격자의 수 yellow는 1 이상 2,000,000 이하인 자연수입니다. 카펫의 가로 길이는 세로 길이와 같거나, 세로 길이보다 .. 2020. 8. 24.
[파일시스템] 필드(Field)?! 레코드(Record)?! 파일(File)?! 정리 파일시스템 부분을 공부하다가 파일은 여러 개의 레코드들로 구성되어 있으며, 레코드는 여러 필드로 구성되어 있다. 라는 글을 읽는데 필드, 레코드에 대해 잘 몰라서 정리를 시작한다..! 자료의 구성 단위의 크기를 정리하면 Bit(비트) - Nibble(니블) - Byte(바이트) - 워드(Word) - 필드(field) - 레코드(Record) - 파일(File) 순서이다. Bit(비트)는 자료 표현의 최소단위로써 0 또는 1이다. Nibble(니블)은 네 개의 비트가 모이면 니블이라 부른다. (4bit) Byte(바이트)는 문자 표현의 최소단위로써 8bit=1byte이다. Word(워드)는 컴퓨터가 한 번에 처리할 수 있는 명령 단위로, 운영체제에 따라 1 Word가 달라진다. Field(필드)는 파일 .. 2020. 8. 22.
[파일시스템] BLOB?! Binary Large Object! 블랍 [위키백과] 바이너리 라지 오브젝트 바이너리 라지 오브젝트 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 바이너리 라지 오브젝트(Binary large object, BLOB)는 데이터베이스 관리 시스템의 하나의 엔티티로서 저장되는 이진 데이터의 모임이다. BLOB은 일반적으로 그림, 오� ko.wikipedia.org 바이너리 라지 오브젝트(Binary Large Object)는 데이터베이스 관리 시스템의 하나의 엔티티로서 저장되는 이진 데이트의 모임 일반적으로 그림,오디오, 또는 기타 멀티미디어 오브젝트인 것이 보통이지만, 바이너리 실행 코드가 BLOB으로 저장되기도 한다. 자료형과 정의는 전통적인 컴퓨터 데이터베이스 시스템에 본래 정의되지 않은 데이터를 기술하기 위해 돋입되었.. 2020. 8. 22.
[python] RuntimeError: deque mutated during iteration. 해결방법 prog = collections.deque([5,4,3,2,1]) answer = [] while len(prog) > 0 : tmp = prog.pop(0) cnt = 1 for i in prog : if tmp < i : break prog.pop(0) cnt += 1 answer.append(cnt) [프로그래머스] 기능개발 [프로그래머스] 기능개발 문제 설명 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 �� security-nanglam.tistory.com 프로그래머스 문제를 풀다가 RuntimeError: deque mutated during iterati.. 2020. 8. 22.
[프로그래머스] 프린터 문제 설명 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린터를 개발했습니다. 이 새롭게 개발한 프린터는 아래와 같은 방식으로 인쇄 작업을 수행합니다. 1. 인쇄 대기목록의 가장 앞에 있는 문서(J)를 대기목록에서 꺼냅니다. 2. 나머지 인쇄 대기목록에서 J보다 중요도가 높은 문서가 한 개라도 존재하면 J를 대기목록의 가장 마지막에 넣습니다. 3. 그렇지 않으면 J를 인쇄합니다. 예를 들어, 4개의 문서(A, B, C, D)가 순서대로 인쇄 대기목록에 있고 중요도가 2 1 3 2 라면 C D A B 순으로 인쇄하게 됩니다. 내가 인쇄를 요청한 문서가 몇 번째로 인쇄되는지 .. 2020. 8. 22.
[프로그래머스] 다리를 지나는 트럭 문제 설명 트럭 여러 대가 강을 가로지르는 일 차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 트럭은 1초에 1만큼 움직이며, 다리 길이는 bridge_length이고 다리는 무게 weight까지 견딥니다. ※ 트럭이 다리에 완전히 오르지 않은 경우, 이 트럭의 무게는 고려하지 않습니다. 예를 들어, 길이가 2이고 10kg 무게를 견디는 다리가 있습니다. 무게가 [7, 4, 5, 6]kg인 트럭이 순서대로 최단 시간 안에 다리를 건너려면 다음과 같이 건너야 합니다. 경과 시간 다리를 지난 트럭 다리를 건너는 트럭 대기 트럭 0 [] [] [7,4,5,6] 1~2 [] [7] [4,5,6] 3 [7] [4] [5,6] 4 [7] [4,5] [.. 2020. 8. 22.