Programmers Practice/level 2
-
뒤에 있는 큰 수 찾기(with python3)Programmers Practice/level 2 2023. 10. 1. 18:29
https://school.programmers.co.kr/learn/courses/30/lessons/154539 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 생각하기 큰 뒷수란 자신보다 뒤에 있는 숫자중에서 자신보다 크면서 ==가장 가까이 있는 수==이다. 정수로 이루어진 배열 numbers를 $a_1, a_2, ..., a_{n- 1}, a_n$라고 할 때 $a_i$의 ==큰 뒷수==만 찾아내면 이 문제를 해결 할 수 있다. 모든 경우 생각하기 (Brute force, 완전 탐색) $a_i$의 큰 뒷수는 $a_{i + 1}$ ~ $a_{n}$($a..
-
무인도 여행 (with Python3)Programmers Practice/level 2 2023. 2. 6. 00:07
https://school.programmers.co.kr/learn/courses/30/lessons/154540 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr - 생각하기 - 이 문제를 읽고 요약해보면 하나의 구역을 중심으로 상하좌우를 연결했을 때 몇 개의 구역이 나오고? 각 구역마다 숫자의 합이 무엇인지 문제이다. 그렇다면 먼저 우리는 1 x 1 격자 형태에서 상하좌우로 움직인다는 문제를 봤을 때 생각할 수있는 방법은 2가지있다. 바로 BFS, DFS이다. 제가 알고리즘을 풀 때 이 두 개의 개념을 생각하는 방식은 BFS는 어떤 점에 연결 된 것중 ..
-
시소 짝꿍 (with Python3)Programmers Practice/level 2 2023. 1. 24. 20:18
https://school.programmers.co.kr/learn/courses/30/lessons/152996 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr - 생각하기 - 문제를 읽어보면 두 사람을 선택해서 그 두 사람이 2, 3, 4의 거리로 앉을 때 평행을 이루는 경우가 몇 개인가 묻는 문제이다. 먼저 단순하게 생각해보자. 내가 알고리즘을 풀 때 먼저 생각하는 방법은 무조건 Brute force 방법이다. (모든 경우 따지기) N명의 사람 중 2명을 선택한 사람 A, B가 A : B = 1 : 1 A : B = 2 : 3 A : B = 3 : ..
-
N개의 최소공배수 (with Python3)Programmers Practice/level 2 2022. 6. 27. 17:35
https://programmers.co.kr/learn/courses/30/lessons/12953 코딩테스트 연습 - N개의 최소공배수 두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배 programmers.co.kr 생각하기 N개의 숫자의 최소공배수를 찾는 문제인데 이 문제를 먼저 두 개의 숫자의 최소공배수를 찾는 문제에 대해서 먼저 생각해볼 필요가 있다. 두 수를 A, B라고 하고 최소공배수를 L이라고 해보자. 그러면 A에 배수, B의 배수중 겹치는 숫자들이 공배수인데 그중 가장 작은 값이 최소공배수 L이 된다. A x k1 = ..
-
쿼드압축 후 개수 세기 (with Python3)Programmers Practice/level 2 2022. 6. 24. 18:07
https://programmers.co.kr/learn/courses/30/lessons/68936 코딩테스트 연습 - 쿼드압축 후 개수 세기 [[1,1,0,0],[1,0,0,0],[1,0,0,1],[1,1,1,1]] [4,9] [[1,1,1,1,1,1,1,1],[0,1,1,1,1,1,1,1],[0,0,0,0,1,1,1,1],[0,1,0,0,1,1,1,1],[0,0,0,0,0,0,1,1],[0,0,0,0,0,0,0,1],[0,0,0,0,1,0,0,1],[0,0,0,0,1,1,1,1]] [10,15] programmers.co.kr 생각하기 입력으로 주어진 행렬이 모두 같은 값이라면 그 행렬은 압축이 가능한 상태이므로 그 값이 0이면 answer[0]에 1 추가하고 그 값이 1이면 answer[1]에 1..
-
후보키 (with Python3)Programmers Practice/level 2 2022. 6. 24. 16:41
https://programmers.co.kr/learn/courses/30/lessons/42890 코딩테스트 연습 - 후보키 [["100","ryan","music","2"],["200","apeach","math","2"],["300","tube","computer","3"],["400","con","computer","4"],["500","muzi","music","3"],["600","apeach","music","2"]] 2 programmers.co.kr 생각하기 후보키가 몇개가 가능한지를 묻는 문제인데 이것은 후보키가 될 수 있는 집합만 구해준 뒤 그 집합의 갯수를 리턴하면 되는 문제이다. 그러면 후보키를 찾아야 하는데 어떻게 찾을 것인가? 먼저 조합을 이용해서 후보키가 가능한 키 집합을 ..
-
[3차] 파일명 정렬 (with Python3)Programmers Practice/level 2 2022. 6. 23. 17:23
https://programmers.co.kr/learn/courses/30/lessons/17686 코딩테스트 연습 - [3차] 파일명 정렬 파일명 정렬 세 차례의 코딩 테스트와 두 차례의 면접이라는 기나긴 블라인드 공채를 무사히 통과해 카카오에 입사한 무지는 파일 저장소 서버 관리를 맡게 되었다. 저장소 서버에는 프로그램 programmers.co.kr 이해하기 files에 있는 단일 문자를 f이라고 하자. f을 HEAD부분 NUMBER부분 TAIL부분으로 나누어서 문제에 조건대로 정렬하는 문제이다. 파이썬에는 sorted or list.sort()에 파라미터로 key가 있으므로 HEAD, NUMBER, TAIL부분으로 잘 나누어 주면 되는 문제이다. 여기서 HEAD, NUMBER 공간은 반드시 존재..