알고리즘

알고리즘/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

[python] 프로그래머스 - 개인정보 수집 유효기간

출처 : 프로그래머스, https://school.programmers.co.kr/learn/courses/30/lessons/150370 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 더보기 먼저, 생각해야 할 부분 1. 어떻게 해야 기간이 지났다는 것을 명확하게 알 수 있을까? 년, 월, 일을 일일이 비교하는 것보다 두 날짜 사이의 일자를 구해서 하나의 정수로 비교하는게 쉽다. 2. 유효기간과 지난 일자가 같을 경우와 같은 엣지 케이스에 주의하자. 풀이 from collections import defaultdict def solution(today,..

알고리즘/Python

[python] 프로그래머스 - 성격 유형 검사하기

출처 : 프로그래머스, https://school.programmers.co.kr/learn/courses/30/lessons/118666 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알파벳 순서를 몰라서 틀림...세상에 너무 놀았다...다시 시작 더보기 먼저, 생각해야 할 부분 없음 풀이 def solution(survey, choices): answer = '' types = dict([[char, 0] for char in 'RTCFJMAN']) for i in range(len(survey)): type1 = survey[i][0] type2 =..

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