알고리즘 풀이
-
백준(BOJ) 17135번 캐슬 디펜스알고리즘 풀이/백준(Boj) 2019. 11. 13. 23:11
문제 : https://www.acmicpc.net/problem/17135 17135번: 캐슬 디펜스 첫째 줄에 격자판 행의 수 N, 열의 수 M, 궁수의 공격 거리 제한 D가 주어진다. 둘째 줄부터 N개의 줄에는 격자판의 상태가 주어진다. 0은 빈 칸, 1은 적이 있는 칸이다. www.acmicpc.net 풀이 : 1. 맨 마지막 칸은 m개의 자리 중 3개의 궁수를 골라야 한다. 따라서 picked 배열을 이용해서 m개의 수중 3개를 뽑아서 궁수 표시를 해주자. 2. 궁수들은 쏠때 한 적을 여러 명이 공격할 수 있으므로 각각 공격이 아닌 한 번에 조준해서 발사하도록 하자. 이때 중복된 적은 1번만 세준다. 3. 조준할 때는 거리가 같다면 가장 왼쪽에 있는 적을 골라야 한다. 따라서 compare 함수..
-
프로그래머스 - 네트워크알고리즘 풀이/프로그래머스 2019. 11. 13. 20:57
문제 : https://programmers.co.kr/learn/courses/30/lessons/43162 코딩테스트 연습 - 네트워크 | 프로그래머스 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있을 때 컴퓨터 A와 컴퓨터 C도 간접적으로 연결되어 정보를 교환할 수 있습니다. 따라서 컴퓨터 A, B, C는 모두 같은 네트워크 상에 있다고 할 수 있습니다. 컴퓨터의 개수 n, 연결에 대한 정보가 담긴 2차원 배열 computers가 매개변수로 주어질 때, 네트워크 programmers.co.kr 풀이 : 기본 DFS문제로 DFS를 통해 연결돼있는 컴포넌트가 몇..
-
프로그래머스 - 소수 찾기알고리즘 풀이/프로그래머스 2019. 11. 13. 20:55
문제 : https://programmers.co.kr/learn/courses/30/lessons/42839 코딩테스트 연습 - 소수 찾기 | 프로그래머스 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 조각으로 만들 수 있는 소수가 몇 개인지 return 하도록 solution 함수를 완성해주세요. 제한사항 numbers는 길이 1 이상 7 이하인 문자열입니다. numbers는 0~9까지 숫자만으로 이루어져 있습니다. 013은 0, 1, 3 숫자가 적힌 종이 programmers.co.kr 풀이 : picked 배열은 numbers의 1부터 number..
-
프로그래머스 - 더 맵게알고리즘 풀이/프로그래머스 2019. 11. 13. 20:48
문제 : https://programmers.co.kr/learn/courses/30/lessons/42626 코딩테스트 연습 - 더 맵게 | 프로그래머스 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같이 특별한 방법으로 섞어 새로운 음식을 만듭니다. 섞은 음식의 스코빌 지수 = 가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맵지 않은 음식의 스코빌 지수 * 2) Leo는 모든 음식의 스코빌 지수가 K 이상이 될 때까지 반복하여 섞습니다. Leo가 가진 programmers.co.kr 풀이 : 우선순위 큐는 힙을 이용하기 때문에 단순히 넣었다 빼는 것..
-
백준(BOJ) 16948번 데스 나이트알고리즘 풀이/백준(Boj) 2019. 11. 7. 13:49
문제 : https://www.acmicpc.net/problem/16948 16948번: 데스 나이트 게임을 좋아하는 큐브러버는 체스에서 사용할 새로운 말 "데스 나이트"를 만들었다. 데스 나이트가 있는 곳이 (r, c)라면, (r-2, c-1), (r-2, c+1), (r, c-2), (r, c+2), (r+2, c-1), (r+2, c+1)로 이동할 수 있다. 크기가 N×N인 체스판과 두 칸 (r1, c1), (r2, c2)가 주어진다. 데스 나이트가 (r1, c1)에서 (r2, c2)로 이동하는 최소 이동 횟수를 구해보자. 체스판의 행과 열은 0번부 www.acmicpc.net 풀이 : 기본적인 BFS 문제였습니다. 첫 시작 구간을 fy, fx로 잡고 나아갈 수 있는 6방향을 확인합니다. 탐색을 ..
-
프로그래머스 - 완주하지 못한 선수알고리즘 풀이/프로그래머스 2019. 11. 6. 10:16
문제 : https://programmers.co.kr/learn/courses/30/lessons/42576 코딩테스트 연습 - 완주하지 못한 선수 | 프로그래머스 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 제한사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 partic programmers.co.kr 풀이 : 우선 완주자들을 map 형태로 넣어준다. 그 ..
-
프로그래머스 - 모의고사알고리즘 풀이/프로그래머스 2019. 11. 5. 06:37
문제 : https://programmers.co.kr/learn/courses/30/lessons/42840 코딩테스트 연습 - 모의고사 | 프로그래머스 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ... 2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ... 3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, programmers.co.kr 풀이 : 1,2,3번 (a,b,c) 배열을 각각 만들고 그들의 찍..