공부하고 기록하는, 경제학과 출신 개발자의 노트

코딩테스트 185

[Python] 구름. 근묵자흑

https://level.goorm.io/exam/47881/%EA%B7%BC%EB%AC%B5%EC%9E%90%ED%9D%91/quiz/1 구름LEVEL 코딩테스트에서 가장 높은 비중을 차지하는 알고리즘 문제를 제작하고 풀이할 수 있는 온라인 저지 서비스입니다. 기업에서 선호하는 C, C++, 파이썬(Python), 자바(Java), 자바스크립트(Javascript) 이외에 여러 가지 프로그래밍 언어로 풀이할 수 있습니다. level.goorm.io 첫 번째 변환을 하는 장소가 어디인지에 따라 결과값이 달라진다. 문제 예시의 경우, [2,3,1]을 고를 수도 있고 [3,1,4]를 고를 수도 있으며, 배열이 길어지면 이 선택에 따라 변환 횟수가 달라질 수 있음. 1. 배열에서 가장 작은 숫자의 index를..

[Python] 프로그래머스. 서울에서 경산까지 (Level 4)

https://programmers.co.kr/learn/courses/30/lessons/42899 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr DP문제. table[n][key] = n번째 도시를 key의 시간으로 도착했을 때 얻을 수 있는 수익의 최댓값으로 정의하면 table[n][key]는 table[n-1][key] + n번째 도시에서 얻을 수 있는 비용 중 최댓값이 된다. 2D 리스트보다 효율적으로 만들어보려고 리스트 + dict 자료구조를 썼다.

[Python] 백준 17143. 낚시왕

https://www.acmicpc.net/problem/17143 17143번: 낚시왕 낚시왕이 상어 낚시를 하는 곳은 크기가 R×C인 격자판으로 나타낼 수 있다. 격자판의 각 칸은 (r, c)로 나타낼 수 있다. r은 행, c는 열이고, (R, C)는 아래 그림에서 가장 오른쪽 아래에 있는 칸이다. 칸에는 상어가 최대 한 마리 들어있을 수 있다. 상어는 크기와 속도를 가지고 있다. 낚시왕은 처음에 1번 열의 한 칸 왼쪽에 있다. 다음은 1초 동안 일어나는 일이며, 아래 적힌 순서대로 일어난다. 낚시왕은 가장 오른쪽 열의 오른쪽 칸에 이동하 www.acmicpc.net 깐깐한 시뮬레이션 문제. 내 코드는 Python3으로는 시간초과가 났고, pypy3으로는 통과했다. 더 효율적으로 코드를 작성할 방법이..

[Python] 프로그래머스. 2019 카카오 겨울 인턴 recruit - 징검다리 건너기 (Level 3)

https://programmers.co.kr/learn/courses/30/lessons/64062 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 19년 12월 처음 접했을 때는 시간이 없어서 못 풀었고, 이번에 풀었을 때 효율성 13번에서 시간초과가 난 문제. 공식 풀이는 이분탐색. 나는 이 문제를 '전체 list 중 k개를 window로 돌면서, 해당 window의 최댓값이 가장 작은 것'을 반환하는 문제라고 봤다. window로 돌 때, 해당 window 모든 값이 0이면 더 이상 강을 건널 수 없다. 모든 값이 0이 되려면, window의 가장 ..

[Python] 프로그래머스. 2020 카카오 recruit - 자물쇠와 열쇠 (Level 3)

https://programmers.co.kr/learn/courses/30/lessons/60059 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법은 카카오 공식 해설을 참고하면 된다. https://tech.kakao.com/2019/10/02/kakao-blind-recruitment-2020-round1/ 2020 신입 개발자 블라인드 채용 1차 코딩 테스트 문제 해설 올해에도 2020이라는 멋진 숫자와 함께, 카카오의 신입 개발자 채용을 시작했습니다! 그 여정 중 첫 단계로 1차 코딩 테스트가 지난 9월 7일 토요일 오후 2시부터 오후 ..

[Python] 프로그래머스. 2019 카카오 겨울 인턴 recruit - 불량 사용자 (Level 3)

https://programmers.co.kr/learn/courses/30/lessons/64064 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr dfs + backtracking을 써서 해결한 문제. 문제 조건에 주어진 user_id, banned_id 개수가 많지 않아서, 모든 경우의 수를 확인하면서 풀 수 있는 문제였다. 어떤 자료구조를 어떻게 써서 풀어야 시간초과 없이 풀 수 있는지 시간 내에 고민해서 정답을 찾는 게 고민스러웠던 문제. 주어진 데이터의 양이 많지 않아서 정규식을 사용할 수 있었던 것 같다.

[Python] 프로그래머스. 2019 카카오 겨울 인턴 recruit - 호텔 방 배정 (Level 4)

https://programmers.co.kr/learn/courses/30/lessons/64063프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr union find 형태의 문제. 백준 10775 공항 문제를 참고하면 좋다.이런 형태의 문제는 이전에 풀어 봤다. k가 10^12나 되는 큰 크기이기 때문에, 저 숫자만큼의 배열이나 dictionary를 선언하지 않는 게 시간초과를 막는 핵심. [Python] 백준 10775. 공항https://www.acmicpc.net/problem/10775 10775번: 공항 문제 오늘은 신승원의 생일이다. 박승원은 생일..

[Python] 프로그래머스. 2019 카카오 겨울 인턴 recruit - 크레인 인형뽑기 게임 (Level 2)

https://programmers.co.kr/learn/courses/30/lessons/64061 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2019년에 4solve 탈락, 최근에 프로그래머스에서 다시 열어 준 시험에서는 3solve했던 문제들. 이 문제는 어렵지 않다. board의 각 column별로 수직 탐색하는 대신, 이차원 배열의 column에 해당하는 부분을 row가 되도록 변형하면 된다.