알고리즘(38)
-
[삼성 SDS] 2022 하계 알고리즘 특강 후기
위 과정의 2차 과정에 지원했으며, 지난 주 금요일날 수업이 종료되었다. 결론부터 말하면 수업 유익하고 좋았다. 지원서 접수 기본 인적사항과 성적, 재학, 병역 증명서를 제출했다. 선택사항으로 간단한 다짐 + 프로그래밍을 잘하고 싶어서 했던 경험 등을 간단하게 적는 란이 있었다. 구글 폼 설문이라 각각 2~3줄씩 적어서 제출했던 것으로 기억한다. 관련 학과를 우대한다고 하는데 크게 걱정할 필요는 없는 것 같다. 나는 비전공자고, 나랑 비슷한 사람이 많았던 것 같다. Java의 사용이 익숙치 않은 분들도 계셨다. 사전 테스트 약 5일의 시간동안 5문제를 풀고 제출한다. 문제의 난이도는 체감 상 골드 1~3 정도다. 처음 이틀 동안은 미루다가 풀기 시작했는데 내가 풀 수 있는 문제는 하나밖에 없었다. 결국 ..
2022.08.01 -
백준 1105: 팔 [Java] - 미스터 포포
문제 L과 R이 주어진다. 이때, L보다 크거나 같고, R보다 작거나 같은 자연수 중에 8이 가장 적게 들어있는 수에 들어있는 8의 개수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 L과 R이 주어진다. L은 2,000,000,000보다 작거나 같은 자연수이고, R은 L보다 크거나 같고, 2,000,000,000보다 작거나 같은 자연수이다. 출력 첫째 줄에 L보다 크거나 같고, R보다 작거나 같은 자연수 중에 8이 가장 적게 들어있는 수에 들어있는 8의 개수를 구하는 프로그램을 작성하시오. 제출한 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main {..
2022.07.13 -
백준 18310: 안테나 [Java] - 포포
문제 일직선 상의 마을에 여러 채의 집이 위치해 있다. 이중에서 특정 위치의 집에 특별히 한 개의 안테나를 설치하기로 결정했다. 효율성을 위해 안테나로부터 모든 집까지의 거리의 총 합이 최소가 되도록 설치하려고 한다. 이 때 안테나는 집이 위치한 곳에만 설치할 수 있고, 논리적으로 동일한 위치에 여러 개의 집이 존재하는 것이 가능하다. 집들의 위치 값이 주어질 때, 안테나를 설치할 위치를 선택하는 프로그램을 작성하시오. 예를 들어 N=4이고, 각 위치가 1, 5, 7, 9일 때를 가정하자. 이 경우 5의 위치에 설치했을 때, 안테나로부터 모든 집까지의 거리의 총 합이 (4+0+2+4)=10으로, 최소가 된다. 입력 첫째 줄에 집의 수 N이 자연수로 주어진다. (1≤N≤200,000) 둘째 줄에 N채의 집..
2022.06.08 -
백준 15904: UCPC는 무엇의 약자일까? [Java] - 포포
문제 UCPC는 '전국 대학생 프로그래밍 대회 동아리 연합 여름 대회'의 줄임말로 알려져있다. 하지만 이 줄임말이 정확히 어떻게 구성되었는지는 아무도 모른다. UCPC 2018을 준비하던 ntopia는 여러 사람들에게 UCPC가 정확히 무엇의 줄임말인지 물어보았지만, 아무도 정확한 답을 제시해주지 못했다. ntopia가 들은 몇 가지 답을 아래에 적어보았다. Union of Computer Programming Contest club contest Union of Computer Programming contest Club contest Union of Computer Programming contest club Contest Union of Collegiate Programming Contest clu..
2022.06.03 -
백준 2869: 달팽이는 올라가고 싶다 [Java] - 포포
문제 땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다. 달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다. 달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) 출력 첫째 줄에 달팽이가 나무 막대를 모두 올라가는데 며칠이 걸리는지 출력한다. https://www.acmicpc.net/problem/2869 2869번: 달팽이는 올라가고 싶다 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V..
2022.05.28 -
Union find(합집합 찾기, 서로소 집합) 알고리즘
Union find 알고리즘은 여러개의 공통점이 없는 노드들이 존재할 때, 그 중 선택한 두개의 노드가 서로 같은 그래프에 속하는지 판별하는 알고리즘이다. 노드 번호 1 2 3 4 5 6 7 부모 노드 번호 1 2 3 4 5 6 7 현재는 각 노드들이 부모 노드번호로 자기 자신을 가지고 있는, 각자 자기 자신만을 집합으로 가지고 있는 상태이다. 부모 노드 번호는 자신이 어떤 부모에 포함되어 있는지를 나타낸다. 노드 번호 1 2 3 4 5 6 7 부모 노드 번호 1 2 3 3 5 6 7 만약 노드 3, 4가 연결되었다면 둘 중 더 작은 값(여기서는 1)로 부모 노드를 합친다. 이것을 합침(Union)이라고 한다. 만약 4, 5도 연결되었다면 테이블은 아래와 같을 것이다. 노드 번호 1 2 3 4 5 6 7..
2022.05.24