알고리즘/Python

알고리즘/Python

[python] 백준 20055 - 컨베이어 벨트 위의 로봇

출처 : 백준, https://www.acmicpc.net/problem/20055 20055번: 컨베이어 벨트 위의 로봇 길이가 N인 컨베이어 벨트가 있고, 길이가 2N인 벨트가 이 컨베이어 벨트를 위아래로 감싸며 돌고 있다. 벨트는 길이 1 간격으로 2N개의 칸으로 나뉘어져 있으며, 각 칸에는 아래 그림과 같이 1부 www.acmicpc.net 더보기 먼저, 생각해야 할 부분 1. 문제를 잘 이해하자. 문제가 너무 이상하지만 차근차근 읽어보면 해석이 된다. 문제에서 말하는 단계란 무엇일까? # 단계의 정의 -> 1~4까지가 1단계 # 1. 벨트를 움직인다. -> 로봇 내림 # 2. 로봇을 움직인다. -> 내구도 하락 및 로봇 내림 # 3. 로봇 올림 # 4. 내구도 k개인지 조사 이것이 문제에서 말하..

알고리즘/Python

[python] 백준 14891 - 톱니바퀴

출처 : 백준, https://www.acmicpc.net/problem/14891 14891번: 톱니바퀴 총 8개의 톱니를 가지고 있는 톱니바퀴 4개가 아래 그림과 같이 일렬로 놓여져 있다. 또, 톱니는 N극 또는 S극 중 하나를 나타내고 있다. 톱니바퀴에는 번호가 매겨져 있는데, 가장 왼쪽 톱니바퀴 www.acmicpc.net 더보기 먼저, 생각해야 할 부분 1. 보자마자 가장 쉬운 접근법이 떠올랐을텐데 그 풀이 방법이 통과 가능한지 검토해보자. 불가능하다는 말이 아니다. 2. 구현 문제는 놓치는 부분 없이 꼼꼼하게 풀어야한다. 조건을 놓치지 않게 조건을 잘 명시하는 의사코드를 대략적으로 적어보자 풀이 : Multiple Pointer import sys def solution(gears, rot_c..

알고리즘/Python

[python] 백준 14503 - 로봇 청소기

출처 : 백준, https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 첫째 줄에 방의 크기 $N$과 $M$이 입력된다. $(3 \le N, M \le 50)$ 둘째 줄에 처음에 로봇 청소기가 있는 칸의 좌표 $(r, c)$와 처음에 로봇 청소기가 바라보는 방향 $d$가 입력된다. $d$가 $0$인 경우 북쪽 www.acmicpc.net 더보기 먼저, 생각해야 할 부분 1. 빡구현 문제이다. 어떻게 단계별로 나누어 작성할지 생각하자. 2. x, y로 작성하지 말고 그냥 r, c로 생각하자. 컴퓨터는 row를 먼저 접근 후 column을 접근한다. 괜히 x, y로 한 번 더 생각했다간 더 헷갈린다. array[row][column] 풀이 import sys def s..

알고리즘/Python

[python] 백준 13458 - 시험 감독

출처 : 백준, https://www.acmicpc.net/problem/13458 13458번: 시험 감독 첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000) www.acmicpc.net 더보기 풀이 import sys def input(): return sys.stdin.readline().rstrip() def solution(n, student_list, main, sub): answer = 1 for student in student_list: mok, left = divmod(student - mai..

알고리즘/Python

[python] 프로그래머스 - 하노이의 탑

출처 : 프로그래머스, https://school.programmers.co.kr/learn/courses/30/lessons/12946 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 얼씨구나 dp구나 하고 들어왔는데 당황... 더보기 먼저, 생각해야 할 부분 1. 하노이의 탑은 1번 막대에서 3번 막대로 원판을 이동시키는 것이다. 기존 하노이의 탑 문제에서는 n개의 원판을 1번으로 3번으로 이동시키기 위한 이동 횟수를 물어봤다면, 여기서는 이동방법을 리스트로 return하는 조금 변형된 유형인데 핵심은 같다. 기존 하노이의 탑에서 이동 횟수를 구할 때를..

알고리즘/Python

[python] 프로그래머스 - 두 큐 합 같게 만들기

출처 : 프로그래머스, https://school.programmers.co.kr/learn/courses/30/lessons/118667 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 더보기 먼저, 생각해야 할 부분 먼저 이 문제를 풀기 위해서는 2가지 정도를 생각해보아야한다. 하나는 큐의 합을 같게 만드는 가장 적은 횟수를 구하는 방법이고, 다른 하나는 큐의 합을 같게 만들 수 없음을 판별하는 방법이다. 1. 큐의 합을 같게 만드는 가장 적은 횟수를 구하는 방법 2개의 큐 중 합이 큰 쪽의 성분을 빼서 작은 쪽에 넣는 방법을 반복하면 된다. 합이 큰 ..

알고리즘/Python

[python] 프로그래머스 - 괄호 변환

출처 : 프로그래머스, https://school.programmers.co.kr/learn/courses/30/lessons/60058 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 요구하는 알고리즘만 잘 이해한다면, 어렵지 않게 풀 수 있는 문제. 최근으로 갈수록 문제에 설명이 복잡해져 비문학 독해 능력이 요구된다는 느낌이 든다. 더보기 먼저, 생각해야 할 부분 1. 설명을 잘 이해하는게 급선무 문제에서 구현을 요구하는 알고리즘을 일단 차근차근 읽어보고 어떤 형태로 구현하는게 편할지 고민해보자. 2. 문제에서 대놓고 재귀라고 계속 말하고 있다. 어떤 ..

알고리즘/Python

[python] 프로그래머스 - 메뉴 리뉴얼

출처 : 프로그래머스, https://school.programmers.co.kr/learn/courses/30/lessons/72411 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 그냥 짜는게 방법이라는걸 확신하는게 가장 어려운 것 같다. 더보기 풀이 from itertools import combinations from collections import Counter def solution(orders, course): answer = [] combi_list = [] for order in orders: for num in course: combi..

알고리즘/Python

[python] 프로그래머스 - 오픈채팅방

출처 : 프로그래머스, https://school.programmers.co.kr/learn/courses/30/lessons/42888 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 더보기 풀이 from collections import defaultdict def solution(record): answer = [] nickname_list = defaultdict(lambda x: '') log_list = [] for rec in record: act, *information = rec.split() if act == 'Enter' or act =..

알고리즘/Python

[python] 프로그래머스 - k진수에서 소수 개수 구하기

출처 : 프로그래머스, https://school.programmers.co.kr/learn/courses/30/lessons/92335 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 더보기 먼저, 생각해야 할 부분 1. 조건에 해당하는 숫자문자열을 뽑아내기 위해서 가장 쉬운 방법은 무엇일지 생각해보자. 2. 어떤 게 더 쉬울지 생각해보자. 조건을 만족하는 소수를 찾는게 쉬울까, 아니면 일단 조건에 맞는 숫자를 찾고 그 중 소수를 골라내는게 더 쉬울까? 풀이 # 진수 변환 def changeToK(n, k): k_string = '' while n != ..

알고리즘/Python

[python] 프로그래머스 - 튜플

출처 : 프로그래머스, https://school.programmers.co.kr/learn/courses/30/lessons/64065 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 더보기 풀이 # string으로 들어오기 때문에 먼저 int의 집합으로 만들어줘야한다. # 당장은 효율적으로 하는 방법이 떠오르지 않기 떄문에 무식하게 해보자 # 각 집합으로 만들었다면, 길이순으로 정렬한다 # 길이가 작은 것부터 기존과 여집합을 구하여 answer에 차례대로 쌓는다. def solution(s): answer = [] num_list = [] use_num..

알고리즘/Python

[python] 프로그래머스 - 멀리 뛰기

출처 : 프로그래머스, https://school.programmers.co.kr/learn/courses/30/lessons/12914 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 더보기 먼저, 생각해야 할 부분 1. DP의 대표적인 유형 1칸, 2칸씩만 올라갈 수 있다는 부분부터 1칸 전, 2칸 전을 고려해서 누적해가는 dp 유형임을 눈치채자. 풀이 #딱 봐도 dp 문제 #1칸 전 + 2칸 전을 더하는데 거기서 무엇을 더 고려해야할까요? #1칸 전에서 목적지에 도달하는 방법은 1개 #2칸 전에서 목적지에 도달하는 방법은 1칸 + 1칸, 2칸이나 1칸..

제주도랏맨
'알고리즘/Python' 카테고리의 글 목록 (4 Page)