java(7)
-
[백준 BOJ] 5554번 심부름 가는 길 (Java)
문제 설명 https://www.acmicpc.net/problem/5554 5554번: 심부름 가는 길 승균이는 매일 학교, PC방, 학원에 다닌다. 반복되는 일상에 익숙해진 승균이는 이동시간을 단축해서 PC방에 더 오래 머물고 싶었다. 그래서 스톱워치를 들고 이동할 때마다 기록을 잰 후 집 www.acmicpc.net 접근 방법 - 시간 계산에 대한 사칙연산 문제 백준의 5554번 문제는 사칙연산을 이용하여 시간 계산을 수행해야 하는 문제이다. 해당 문제는, 주어지는 4개의 초 단위 시간에 대한 총 이동 시간에 관하여 분과 초 단위로 출력해야 하는 문제이다. 1분이 60초라는 간단한 점만 알고 있다면 비교적 쉽게 풀 수 있는 문제일 것이라 생각한다. 혹여나 해당 문제를 해결하는 데에 어려움을 겪고 있..
2022.10.12 -
[백준 BOJ] 17478번 재귀함수가 뭔가요? (Java)
문제 설명 https://www.acmicpc.net/problem/17478 17478번: 재귀함수가 뭔가요? 평소에 질문을 잘 받아주기로 유명한 중앙대학교의 JH 교수님은 학생들로부터 재귀함수가 무엇인지에 대하여 많은 질문을 받아왔다. 매번 질문을 잘 받아주셨던 JH 교수님이지만 그는 중앙대 www.acmicpc.net 접근 방법 - 재귀 함수를 이용한 출력 문제 백준의 17478번 문제는 재귀 함수를 이용하여 출력을 제어해야 하는 문제이다. 해당 문제는, 입력받은 숫자에 대하여 규칙적인 출력을 하게 해서 해결해야 하는 문제이다. 필자와 같은 경우에는, 각각 다른 출력문으로 구성된 함수 3개를 제어하며 출력을 수행하도록 하였다. 여기서 함수를 불러올 때 재귀를 하거나 다른 함수를 호출하여 넘어가는 식..
2022.09.28 -
[백준 BOJ] 2491번 수열 (Java)
문제 설명 https://www.acmicpc.net/problem/2491 2491번: 수열 0에서부터 9까지의 숫자로 이루어진 N개의 숫자가 나열된 수열이 있다. 그 수열 안에서 연속해서 커지거나(같은 것 포함), 혹은 연속해서 작아지는(같은 것 포함) 수열 중 가장 길이가 긴 것을 찾 www.acmicpc.net 접근 방법 - 배열을 이용한 연산 문제 백준의 2491번 문제는 배열에 대한 연산을 이용하여 해결해야 하는 문제이다. 해당 문제는, 입력받은 수열에 대해 오름차순 또는 내림차순에 있어 가장 긴 것을 찾아 그 길이를 출력해야 하는 문제이다. 사실 이 문제는 dp(다이나믹 프로그래밍)의 원리로 해결해야 하는 문제이다. 따라서, 그와 관련한 풀이를 원했다면 바로 뒤로 가기를 눌러주기를 바란다. ..
2022.09.19 -
[백준 BOJ] 2845번 파티가 끝나고 난 뒤 (Java)
문제 설명 https://www.acmicpc.net/problem/2845 2845번: 파티가 끝나고 난 뒤 파티가 끝나고 나면, 사람들은 누가 파티에 왔는지와 얼마나 많은 사람들이 왔는지를 궁금해한다. 보통 파티는 매우 크게 열리기 때문에, 정확하게 몇 명이 참가했는지 알 수가 없다. 지난주 토 www.acmicpc.net 접근 방법 - 기본적인 사칙연산 문제 백준의 2845번 문제는 기본적인 사칙연산을 다루고 있는 기초 문제이다. 해당 문제는, 입력값들에 대해 각 기사에 적혀있는 파티 참가자 수의 오차를 출력해야 하는 문제이다. 각 기사에 적혀있는 참가자 수에 문제의 상근이가 알고 있는 참가자 수를 빼면 되는 문제이다. 따라서 이 문제는, 사용하는 프로그래밍 언어의 기초적인 문법만 잘 알고 있다면 ..
2022.08.29 -
[백준 BOJ] 2798번 블랙잭 (Java)
문제 설명 https://www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net 접근 방법 - 브루트포스 알고리즘을 이용한 연산 문제 백준의 2798번 문제는 브루트포스 알고리즘을 이용하여 해결해야 하는 문제이다. 브루트포스 알고리즘이란 모든 경우의 수를 감안하며 해답을 얻어내는 알고리즘을 뜻한다. 이와 관련한 다른 문제에 관해서, 이전에 필자가 작성한 글이 있다. 이 알고리즘이 아직 어색하다면 아래의 링크 글을 한번 참고해보길 바란..
2022.01.29 -
[백준 BOJ] 2606번 바이러스 (Java)
문제 설명 https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 접근 방법 - 큐를 이용한 너비 우선 탐색 (BFS) 백준의 2606번 문제는 깊이 우선 탐색(DFS) 또는 너비 우선 탐색(BFS)으로 해결해야 하는 문제이다. 필자의 경우에는 큐를 이용하여 BFS 알고리즘을 사용하였는데 DFS 알고리즘을 이용해도 무관할 것이다. 해당 문제에선, 주어진 컴퓨터 네트워크에 대하여 1번 컴퓨터가 감염되었다고 가정하였을 시 몇 대의 컴퓨터가 감염되었을지에 대한 ..
2022.01.26