프로그래밍 (Programming)/알고리즘 (Algorithm)
-
[BOJ 2109] 순회강연 (파이썬)프로그래밍 (Programming)/알고리즘 (Algorithm) 2021. 7. 9. 16:43
안녕하세요. 오늘은 백준에 있는 2109번 순회강연 문제를 풀어보려고 합니다. 문제의 출처는 아래와 같습니다. https://www.acmicpc.net/problem/2109 1. 문제 한 저명한 학자에게 n(0 ≤ n ≤ 10,000)개의 대학에서 강연 요청을 해 왔다. 각 대학에서는 d(1 ≤ d ≤ 10,000)일 안에 와서 강연을 해 주면 p(1 ≤ p ≤ 10,000)만큼의 강연료를 지불하겠다고 알려왔다. 각 대학에서 제시하는 d와 p값은 서로 다를 수도 있다. 이 학자는 이를 바탕으로, 가장 많은 돈을 벌 수 있도록 순회강연을 하려 한다. 강연의 특성상, 이 학자는 하루에 최대 한 곳에서만 강연을 할 수 있다. 예를 들어 네 대학에서 제시한 p값이 각각 50, 10, 20, 30이고, d값이..
-
[프로그래머스] 오픈채팅방 (파이썬)프로그래밍 (Programming)/알고리즘 (Algorithm) 2021. 5. 2. 22:44
안녕하세요. 오늘은 2019년도 카카오 공채에 출제되었던 문제를 풀어보려고 합니다. 문제의 출처는 아래와 같습니다. https://programmers.co.kr/learn/courses/30/lessons/42888 처음에는 문제가 길어서 겁을 먹었지만 문제를 읽다 보니 딕셔너리를 이용하면 쉽게 풀 수 있겠구나 생각했습니다. 1. 문제 설명 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오픈 채팅방을 개설한 사람을 위해, 다양한 사람들이 들어오고, 나가는 것을 지켜볼 수 있는 관리자창을 만들기로 했다. 채팅방에 누군가 들어오면 다음 메시지가 출력된다. "[닉네임]님이 들어왔습니다...
-
[BOJ 20055] 컨베이어 벨트 위의 로봇 (파이썬)프로그래밍 (Programming)/알고리즘 (Algorithm) 2021. 4. 30. 22:38
오늘은 구현 문제 중 하나인 '컨베이어 벨트 위의 로봇' 문제를 풀이해보려고 합니다. 문제의 출처는 백준 사이트에서 확인할 수 있습니다. https://www.acmicpc.net/problem/20055 문제가 복잡해 보이지만 주어진 조건을 잘 읽으면 쉽게 문제를 풀 수가 있습니다. 1. 문제 설명 길이가 N인 컨베이어 벨트가 있고, 길이가 2N인 벨트가 이 컨베이어 벨트를 위아래로 감싸며 돌고 있다. 벨트는 길이 1 간격으로 2N개의 칸으로 나뉘어 있으며, 각 칸에는 아래 그림과 같이 1부터 2N까지의 번호가 매겨져 있다. 벨트가 한 칸 회전하면 1번부터 2N-1번까지의 칸은 다음 번호의 칸이 있는 위치로 이동하고, 2N번 칸은 1번 칸의 위치로 이동한다. i번 칸의 내구도는 Ai이다. 위의 그림에서..
-
[프로그래머스] 전화번호 목록 (파이썬)프로그래밍 (Programming)/알고리즘 (Algorithm) 2020. 8. 19. 18:13
안녕하세요. 오늘은 프로그래머스, 해시 카테고리에 있는 문제를 하나 소개하고자합니다. 해당 문제는 https://programmers.co.kr/ 에서 풀어보실 수 있습니다. 1. 문제 설명 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 4421 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요. 2. 제..
-
[BOJ 2501] 약수 구하기 (파이썬)프로그래밍 (Programming)/알고리즘 (Algorithm) 2020. 2. 15. 17:25
안녕하세요. 오늘은 백준 문제 중에서 간단한 문제를 소개해드리려고 합니다. 문제의 출처는 다음과 같습니다. https://www.acmicpc.net/problem/2501 2501번: 약수 구하기 첫째 줄에 N과 K가 빈칸을 사이에 두고 주어진다. N은 1 이상 10,000 이하이다. K는 1 이상 N 이하이다. www.acmicpc.net 1. 문제 어떤 자연수 p와 q가 있을 때, 만일 p를 q로 나누었을 때 나머지가 0이면 q는 p의 약수이다. 6을 예로 들면 6 ÷ 1 = 6 … 0 6 ÷ 2 = 3 … 0 6 ÷ 3 = 2 … 0 6 ÷ 4 = 1 … 2 6 ÷ 5 = 1 … 1 6 ÷ 6 = 1 … 0 그래서 6의 약수는 1, 2, 3, 6, 총 네 개이다. 두 개의 자연수 N과 K가 주어졌..