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

코딩테스트 185

[Python] 백준 11003. 최솟값 찾기

11003번: 최솟값 찾기 N개의 수 A1, A2, ..., AN과 L이 주어진다. Di = Ai-L+1 ~ Ai 중의 최솟값이라고 할 때, D에 저장된 수를 출력하는 프로그램을 작성하시오. 이때, i ≤ 0 인 Ai는 무시하고 D를 구해야 한다. www.acmicpc.net 슬라이딩 윈도우 문제. 매번 윈도우 위치를 변경할 때마다 min함수를 사용할 경우, 시간복잡도가 O(n**2)가 된다. deque를 활용해 삽입/삭제를 빠르게 수행하되, deque에 값을 저장하는 방식을 약간 변경하면 효율적으로 연산을 수행할 수 있다. 아래 풀이에서 더 상세한 해설을 볼 수 있다. 백준 11003번 문제 (최솟값 찾기) with Java · 쾌락코딩 백준 11003번 문제 (최솟값 찾기) with Java 03 D..

[Python] 프로그래머스. 소수 만들기 (Level 2)

https://programmers.co.kr/learn/courses/30/lessons/12977 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. combinations으로 숫자 세 개 뽑기 2. 뽑은 세 개의 숫자를 합한 값이 소수인지 판별하기.

[Python] 프로그래머스. 점프와 순간이동 (Level 2)

https://programmers.co.kr/learn/courses/30/lessons/12980 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 현재 위치부터 0까지 도달하는 방법을 역산하면 간단히 식을 도출할 수 있는 문제. 이전 위치 * 2로 현재 위치에 도달할 수 있으면 건전지 사용이 필요없다. 즉, 현재 위치 % 2 == 0이면 건전지 사용 없이 위치에 도달할 수 있다. 만약 현재 위치 % 2 != 0이라면, 현재 위치 % 2가 0이 될 수 있도록 1을 빼준다. 문제의 예시 5000은 5000 -> 2500 -> 1250 -> 625 -> 62..

[Python] 백준 17822. 원판 돌리기

https://www.acmicpc.net/problem/17822 17822번: 원판 돌리기 반지름이 1, 2, ..., N인 원판이 크기가 작아지는 순으로 바닥에 놓여있고, 원판의 중심은 모두 같다. 원판의 반지름이 i이면, 그 원판을 i번째 원판이라고 한다. 각각의 원판에는 M개의 정수가 적혀있고, i번째 원판에 적힌 j번째 수의 위치는 (i, j)로 표현한다. 수의 위치는 다음을 만족한다. (i, 1)은 (i, 2), (i, M)과 인접하다. (i, M)은 (i, M-1), (i, 1)과 인접하다. (i, j)는 (i, j-1), (i, j www.acmicpc.net 원판 회전을 위해 deque를 사용하고, 인접한 숫자를 체크하기 위해 bfs를 활용한다. 이차원 배열로 구현하되 1. 이차원 배열..

[Python] 프로그래머스. 타일 장식물 (Level 3)

https://programmers.co.kr/learn/courses/30/lessons/43104 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 그림에서 바로 점화식을 찾을 수 있는 문제. table[idx] = idx번째 사각형의 한 변의 길이로 정의하면 table[1] = 1, table[2] = 2이고 idx >=3일 때 table[idx] = table[idx-1] + table[idx-2]가 된다.

[Python] 구름. 그룹 지정

https://level.goorm.io/exam/49052/%EA%B7%B8%EB%A3%B9-%EC%A7%80%EC%A0%95/quiz/1 구름LEVEL 코딩테스트에서 가장 높은 비중을 차지하는 알고리즘 문제를 제작하고 풀이할 수 있는 온라인 저지 서비스입니다. 기업에서 선호하는 C, C++, 파이썬(Python), 자바(Java), 자바스크립트(Javascript) 이외에 여러 가지 프로그래밍 언어로 풀이할 수 있습니다. level.goorm.io union find 문제.

[Python] 구름. 잡초 제거

https://level.goorm.io/exam/51351/%EC%9E%A1%EC%B4%88-%EC%A0%9C%EA%B1%B0/quiz/1 구름LEVEL 코딩테스트에서 가장 높은 비중을 차지하는 알고리즘 문제를 제작하고 풀이할 수 있는 온라인 저지 서비스입니다. 기업에서 선호하는 C, C++, 파이썬(Python), 자바(Java), 자바스크립트(Javascript) 이외에 여러 가지 프로그래밍 언어로 풀이할 수 있습니다. level.goorm.io Segment Tree라는 개념을 처음 알게 된 문제. Segment Tree 개념을 쉽게 설명한 포스트는 아래와 같다. https://www.crocus.co.kr/648 세그먼트 트리(Segment Tree) 세그먼트 트리(Segment Tree)는 요..

[Python] 구름. 개구리 2

https://level.goorm.io/exam/43230/%EA%B0%9C%EA%B5%AC%EB%A6%AC-2/quiz/1 구름LEVEL 코딩테스트에서 가장 높은 비중을 차지하는 알고리즘 문제를 제작하고 풀이할 수 있는 온라인 저지 서비스입니다. 기업에서 선호하는 C, C++, 파이썬(Python), 자바(Java), 자바스크립트(Javascript) 이외에 여러 가지 프로그래밍 언어로 풀이할 수 있습니다. level.goorm.io 도착점에서부터 시작점으로 역산하면서 '한 칸 이동하는 데 필요한 값'을 갱신하는 문제.

[Python] 구름. 소수 고리

https://level.goorm.io/exam/43234/%EC%86%8C%EC%88%98-%EA%B3%A0%EB%A6%AC/quiz/1 구름LEVEL 코딩테스트에서 가장 높은 비중을 차지하는 알고리즘 문제를 제작하고 풀이할 수 있는 온라인 저지 서비스입니다. 기업에서 선호하는 C, C++, 파이썬(Python), 자바(Java), 자바스크립트(Javascript) 이외에 여러 가지 프로그래밍 언어로 풀이할 수 있습니다. level.goorm.io 1. permutations로 가능한 모든 조합을 생성한다 2. 자료구조에 각 조합별로 인접한 숫자 두 개의 합을 저장한다. 3. 저장된 모든 숫자가 소수인지 확인한다 4. 전부 소수라면 해당 배열 조합을 출력한다.