본문 바로가기

전체 글133

[백준] 2606 - 바이러스, C++ (알고리즘 정리 예정) https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어진다. 이어서 그 수만큼 한 줄에 한 쌍씩 네트워크 상에서 직접 연결되어 있는 컴퓨터의 번호 쌍이 주어진다. www.acmicpc.net 본 문제는 '2004 한국정보올림피아드 지역본선 초등부 3번 문제'로 문제 분류는 '플로이드 와샬 알고리즘'이라고 되어 있는데 BFS로 풀린다. 최단 경로 알고리즘(정리 예정) 코딩 절차는 다음과 같다. 간선 정보 입력 정점 1에서 시작 감염된 컴퓨터 개수 파악 1 2 3 4 5 6 7 8 9 1.. 2020. 1. 6.
[백준] 1260 - DFS와 BFS, C++ https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사이에 여러 개의 간선이 있을 수 있다. 입력으로 주어지는 간선은 양방향이다. www.acmicpc.net 본 문제는 백준 1260 문제로 DFS와 BFS를 코딩할 줄 아는지 물어보는 문제다. DFS와 BFS를 구현할 줄 알면 쉬운 문제다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 3.. 2020. 1. 6.
[프로그래머스] 힙(Heap) - 더 맵게, C++ https://programmers.co.kr/learn/courses/30/lessons/42626 코딩테스트 연습 - 더 맵게 | 프로그래머스 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같이 특별한 방법으로 섞어 새로운 음식을 만듭니다. 섞은 음식의 스코빌 지수 = 가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맵지 않은 음식의 스코빌 지수 * 2) Leo는 모든 음식의 스코빌 지수가 K 이상이 될 때까지 반복하여 섞습니다. Leo가 가진 programmers.co.kr 본 문제는 pripriority_queue를 이용하는 문제다. priprio.. 2020. 1. 6.
[프로그래머스] 연습문제 - 문자열 내 마음대로 정렬하기, C++ https://programmers.co.kr/learn/courses/30/lessons/12915 코딩테스트 연습 - 문자열 내 마음대로 정렬하기 | 프로그래머스 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 [sun, bed, car]이고 n이 1이면 각 단어의 인덱스 1의 문자 u, e, a로 strings를 정렬합니다. 제한 조건 strings는 길이 1 이상, 50이하인 배열입니다. strings의 원소는 소문자 알파벳으로 이루어져 있습니다. strings의 원소는 길이 1 이상, 100이하인 programmers.co.kr 본 문제는 sort와 cmp를 연습하는 문제다. 프로그.. 2020. 1. 6.
[프로그래머스] 2019 KAKAO BLIND RECRUITMENT - 오픈 채팅방, C++ https://programmers.co.kr/learn/courses/30/lessons/42888 코딩테스트 연습 - 오픈채팅방 | 프로그래머스 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오픈 채팅방을 개설한 사람을 위해, 다양한 사람들이 들어오고, 나가는 것을 지켜볼 수 있는 관리자창을 만들기로 했다. 채팅방에 누군가 들어오면 다음 메시지가 출력된다. [닉네임]님이 들어왔습니다. 채팅방에서 누군가 나가면 다음 메시지가 출력된다. [닉네임]님이 나갔습니다. 채팅 programmers.co.kr 본 문제는 '2019 KAKAO BLIND RECRUITMENT'로 ka.. 2020. 1. 6.
[프로그래머스] 연습문제 - 124 나라의 숫자, C++ https://programmers.co.kr/learn/courses/30/lessons/12899 코딩테스트 연습 - 124 나라의 숫자 | 프로그래머스 124 나라가 있습니다. 124 나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로 수를 표현합니다. 124 나라에는 자연수만 존재합니다. 124 나라에는 모든 수를 표현할 때 1, 2, 4만 사용합니다. 예를 들어서 124 나라에서 사용하는 숫자는 다음과 같이 변환됩니다. 10진법 124 나라 10진법 124 나라 1 1 6 14 2 2 7 21 3 4 8 22 4 11 9 24 5 12 10 41 자연수 n이 매개변수로 주어질 때, n을 124 programmers.co.kr 본 문제는 프로그래머스 연습문제다. 개인적으로 많이 고전했던 문.. 2020. 1. 6.
[프로그래머스]서머코딩/윈터코딩(~2018) - 소수 만들기, C++ https://programmers.co.kr/learn/courses/30/lessons/12977 코딩테스트 연습 - 소수 만들기 | 프로그래머스 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 소수가 되는 경우의 개수를 return 하도록 solution 함수를 완성해주세요. 제한사항 nums에 들어있는 숫자의 개수는 3개 이상 50개 이하입니다. nums의 각 원소는 1 이상 1,000 이하의 자연수이며, 중복된 숫자가 들어있지 않습니다. 입출 programmers.co.kr 본 문제는 서머 코딩/원터 코딩(~2018) 문제다. 소수 만들기라는 .. 2020. 1. 6.
[프로그래머스] 2017 카카오코드 예선 - 카카오프렌즈 컬러링북, C++ https://programmers.co.kr/learn/courses/30/lessons/1829 코딩테스트 연습 - 카카오프렌즈 컬러링북 | 프로그래머스 6 4 [[1, 1, 1, 0], [1, 2, 2, 0], [1, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 3], [0, 0, 0, 3]] [4, 5] programmers.co.kr 본 문제는 2017 카카오코드 예선 문제다. bfs, dfs로 문제를 해결할 수 있다. 개인적으로 x, y를 이용하여 다음 영역으로 찾아가는 문제는 queue를 이용한 bfs 풀이가 편하기 때문에 bfs로 풀었다. 코딩하기 편한 방법으로 하는 것이 주어진 시간 내에 문제를 정확히 풀어야 하는 기업 코딩테스트에 가장 좋은 방법이라고 생각한다. 이 문제.. 2020. 1. 4.
[프로그래머스] 완전탐색 - 소수 찾기, C++ 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 본 문제는 The 2009 ACM North Western Europea.. 2020. 1. 4.