알고리즘-python
[PG72410] 신규 아이디 추천
🚩 문제 설명 https://programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 1. 아이디의 길이는 3자 이상 15자 이하여야 합니다. 2. 아이디는 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.) 문자만 사용할 수 있습니다. 3. 단, 마침표(.)는 처음과 끝에 사용할 수 없으며 또한 연속으로 사용할 수 없습니다. 1단계 new_id의 모든 대문자를 대응되는 소문자로 치환합니다. 2단계 new_id에서 ..
[PG42748] K번째수
🚩 문제 설명 https://programmers.co.kr/learn/courses/30/lessons/42748 코딩테스트 연습 - K번째수 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr ◾ 배열을 i에서 j까지 자르고 그 중에서 k번째의 수를 구하는 문제 ✅ 입출력 array: 입력되는 수열 commands: [i, j, k] 배열을 원소로 가지는 배열 return ➡️ 해당 commands에 따라 나오는 k번째의 수를 담은 배열 array commands return [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] ✔️ 예시 ..
[TC0304] [그리디] 1이 될 때까지
✅ 이것이 코딩 테스트다 - 1이 될때까지 n, k = map(int, input().split()) cnt = 0 def go(n, k, cnt): if n == 1: return cnt if n % k == 0: n = n // k cnt += 1 return go(n, k, cnt) n = n - 1 cnt += 1 return go(n, k, cnt) print(n, k) cnt = go(n, k, cnt) print("ans:", cnt) ◾ Greedy ◾ 이 문제는 1이 될 때까지 2가지의 과정 중에서 한가지의 과정을 반복하는 것이다. ◾ 많이 풀어본 문제지만 빨리 풀지를 못한다 😨 ◾ 최종적으로는 최소 횟수를 return 해야한다. ◾ 빼기 보다는 나눗셈을 하는게 최소횟수에 이득이 되므로 ..
[TC0303] [그리디] 숫자 카드 게임
✅ 이것이 코딩 테스트다 - 숫자 카드 게임 n, m = map(int, input().split()) cards = [] for i in range(n): cards.append(list(map(int, input().split()))) min_ = min(cards[0]) for j in range(n): tmp = min(cards[j]) if tmp > min_: min_ = tmp ans = min_ print(n, m) print(cards) print("해답:", ans) ◾ Greedy ◾ 카드 행들 중에서 하나를 선택하면 ◾ 해당 행의 카드 중에서 가장 작은 숫자를 골라야한다. ◾ 하지만, 최종적으로는 제일 큰 카드의 숫자를 return 하는 문제 ◾ 행마다 제일 작은 값을 뽑아내고 그 ..
[PG42862] 체육복
🚩 문제설명 https://programmers.co.kr/learn/courses/30/lessons/42862 코딩테스트 연습 - 체육복 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번 programmers.co.kr ◾ 체육복을 최대한 많이 빌려주는 것이 관건이다. ◾ 여벌의 체육복은 1복만 있다. 2복을 빌려준다고 착각하지말자. ◾ 필자는 처음에 2복을 빌려준다고 생각했음 😎 ◾ 또한 주의해야할 점이 여벌의 복을 1복 가져왔는데 만약 도난당한다면 그 학생은 더이상 체육복을 빌려줄 수 없다. ✅ 입출력 n: 전체 학생의 수 lost: 체육복을 도난당한 학생 배열 ..
[BJ1874] 스택 수열
🚩 문제 설명 문제: https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net ◾ 백준 1874번 스택수열 ◾ 스택 기초 문제 ◾ 임의의 수열이 주어졌을 때, 스택을 사용해서 해당 수열을 만들 수 있는지 아닌지 확인하고 ◾ 만약 만들 수 있다면 어떤 순서로 push, pop을 해야하는지 계산하는 문제 즉, 1 ~ N 까지의 수를 해당 수열의 형태로 push, pop 할 수..