본문 바로가기

알고리즘, 문제해결/알고리즘 문제풀이80

[백준 2606번] 바이러스 난이도: 실버 III 문제 링크: https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 지금까지 다른 문제를 풀 때는 먼저 머릿속으로 생각을 하고, C++로 구현해서 정답 판정을 받은 후에, 같은 알고리즘을 Java 문법으로 다시 작성하는 식으로 접근하였습니다. 하지만 이런 식으로는 문제 하나를 푸는데 너무 오래 걸려서, 이번에 처음으로 순수 Java로 문제를 풀어 보았습니다. 문제를 단순화해서 생각해 보면, 1부터 n까지의 노드가 있고, 노드 간의 연결.. 2022. 1. 22.
[백준 2573번] 빙산 난이도: 골드 IV 문제 링크: https://www.acmicpc.net/problem/2573 2573번: 빙산 첫 줄에는 이차원 배열의 행의 개수와 열의 개수를 나타내는 두 정수 N과 M이 한 개의 빈칸을 사이에 두고 주어진다. N과 M은 3 이상 300 이하이다. 그 다음 N개의 줄에는 각 줄마다 배열의 각 행을 www.acmicpc.net 이번 문제부터 문제화면 캡쳐는 생략하겠습니다. 오늘도 풀 만한 문제가 없나~ 하고 보다가 고른 탐색 겸 구현 문제입니다. 구현 문제라서 코드의 길이가 길어지고 잔실수를 조심해야 하지만... 제가 접근한 방법입니다. 시작에 앞서, 빙산이 두 개 이상인지 판별하는 함수, 빙산을 1년어치만큼 녹이는 함수를 작성합니다. 빙산이 두 개 이상인지 판별하는 함수의 경우, .. 2022. 1. 3.
[백준 1697번] 숨바꼭질 난이도: 실버 I 문제 링크: https://www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 한동안 면접 준비하고 교육 받느라 알고리즘에 뜸했던 탓인지 좀 어려운 문제를 못 풀겠어서 (ㅠㅠ) 비교적 간단한 실버1 문제를 풀어 봤습니다. 출발점 n에서 도착점 k까지의 도달 최단 시간을 구하는 문제입니다. n에서 이동은 [n - 1, n + 1, n * 2] 세 가지만 가능하며, 각 이동은 1초가 소요됩니다. 따라서 탐색 알고리즘을 이.. 2021. 12. 31.
[백준 10258번] 스위치 배열 난이도: 골드 I 문제 링크: https://www.acmicpc.net/problem/10258 10258번: 스위치 배열 각 테스트 케이스마다 한 줄에 모든 스위치를 0으로 만들기 위한 최소의 연산 횟수를 출력한다. www.acmicpc.net 이 문제의 경우에는 제가 어디 다른곳에서 봤다가... 해결을 못했었는데 이후에 더 고민해서 답을 찾았던 문제입니다. 마침 백준에 있길래 그대로 제출했고 정답 판정을 받았네요! 규칙이 딱 두 개 존재합니다. 가장 오른쪽의 스위치를 토글한다. i + 1번째 스위치가 1이고, i + 2부터 그 뒤까지 전부 0일 때, i번째 스위치를 토글한다. 이 문제는 수학 문제라고 판단하고, 패턴을 찾기 위해 노력했습니다. 제가 제일 먼저 찾은 패턴은 다음과 같습니다. 두 패턴을.. 2021. 11. 1.
[백준 1935번] 후위 표기식2 난이도: 실버 III 문제 링크: https://www.acmicpc.net/problem/1935 1935번: 후위 표기식2 첫째 줄에 피연산자의 개수(1 ≤ N ≤ 26) 가 주어진다. 그리고 둘째 줄에는 후위 표기식이 주어진다. (여기서 피연산자는 A~Z의 영대문자이며, A부터 순서대로 N개의 영대문자만이 사용되며, 길이 www.acmicpc.net 예전에 학교 다닐 때 자료구조 시간에 다룬 적 있는 후위 표기식 관련 문제입니다. 후위 표기식 관련 설명은 여기로: 링크 후위 표기식으로 나타낸 식을 계산할 때는 다음과 같은 과정을 거칩니다. 식을 앞에서부터 차례로 확인합니다. 피연산자가 나올 경우, stack에 집어넣습니다. 연산자가 나올 경우, stack에서 피연산자 두 개를 꺼냅니다. 먼저 넣었던.. 2021. 10. 31.
[백준 16986번] 인싸들의 가위바위보 난이도: 골드 III 문제 링크: https://www.acmicpc.net/problem/16986 16986번: 인싸들의 가위바위보 두 사람이 같은 손동작을 내어 무승부가 발생할 경우 경기 진행 순서상 뒤인 사람이 이긴 것으로 간주함에 다시 한 번 유의한다. 구체적으로, 경기 진행 순서는 지우, 경희, 민호 순으로 고정되 www.acmicpc.net 문제 설명이 좀 많이 정신없는 문제입니다. 제가 읽으며 정리한 바는 다음과 같습니다. 세 사람 (지우, 경희, 민호)이 인싸들의 가위바위보를 한다. 여기서 우선순위가 정해져 있는데, 지우 < 경희 < 민호 순이다. 정보 a[i][j]가 주어지는데, 이는 손동작 i와 j가 인싸들의 가위바위보를 했을 때의 결과를 담고 있습니다. 2는 i의 승리, 0은 j의 .. 2021. 10. 29.