분류 전체보기 (215) 썸네일형 리스트형 백준 17281 ⚾ 야구 (Java) 1. 문제 링크 17281번: ⚾ ⚾는 9명으로 이루어진 두 팀이 공격과 수비를 번갈아 하는 게임이다. 하나의 이닝은 공격과 수비로 이루어져 있고, 총 N이닝 동안 게임을 진행해야 한다. 한 이닝에 3아웃이 발생하면 이닝이 종 www.acmicpc.net 2. 문제 및 입출력예제 3. 문제 풀이 next 변수는 다음 타자를 저장하기 위해 사용했다. flag는 3아웃 발생 시 다음 이닝으로 넘기기 위한 값이다. 순열로 타자 순서를 짠다. 4번 타자가 1번으로 던지는 경우에만 해당 코드를 반복한다. 이닝이 끝날 때 까지 해당 타자가 공을 친 결과를 확인한다. 3루부터 홈까지 루 마다 이동시키고 스코어를 더한다. 해당 값에서 최댓값이 나왔으면 최댓값으로 바꾸고 출력한다. 코드를 더 깔끔하고 효율적으로 짤 수 .. 백준 13023 ABCDE (Java) 1. 문제 링크 13023번: ABCDE 문제의 조건에 맞는 A, B, C, D, E가 존재하면 1을 없으면 0을 출력한다. www.acmicpc.net 2. 문제 및 입출력예제 3. 문제 풀이 dfs를 이용해서 풀었다. 클래스를 구현해서 그 클래스로 배열을 만드는 방법 (코드 1)과 ArrayList 배열을 만드는 방법 2가지를 해봤다. 1번 방법이 확실히 코드도 간단하고 메모리나 시간 측면에서 더 나은 성능을 보여줬다. 4. 코드 방법 1 import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { static class Node{ public int vertex; public Node link; public .. 백준 11050 이항 계수 1 (Java) 1. 문제 링크 11050번: 이항 계수 1 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 10, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net 2. 문제 및 입출력예제 3. 문제 풀이 이항계수를 구하는 공식은 n! / (k! * (n-k)!)이다. 그래서 분자와 분모에 공통되는 부분은 계산하지 않기 위해 N-K 값을 이용했다. N-K와 K 값 중 큰 값을 max로 나머지를 min으로 두고 풀었다. N부터 max까지 곱하고, min부터 1까지 나눈 값을 출력했다. 4. 코드 import java.io.IOException; import java.util.Scanner; public class Main { public static void main(String[] a.. 백준 1541 잃어버린 괄호 (Java) 1. 문제 링크 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 2. 문제 및 입출력예제 3. 문제 풀이 빼기 기준으로 문자열을 나눠서 각 문자열에서 더하기를 먼저 한다. 그러면 값을 뺄 때 더할 수 있는 값을 전부 더했기에 큰 값을 빼게 되는 것이다. 최종적으로 만들 수 있는 최솟값을 만들 수 있다. 4. 코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scan.. 백준 1987 알파벳 (Java) 1. 문제 링크 1987번: 알파벳 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으 www.acmicpc.net 2. 문제 및 입출력예제 3. 문제 풀이 입력받은 map을 dfs로 탐색한다. 알파벳은 boolean 배열을 이용해서 들렀는지 아닌지 확한다. 방향벡터를 이용해서 범위 안에 있을때 방문했던 위치인지 확인하고 재귀한다. 처음에 한 칸이 기본이니까 값을 세는 시작이 1이라는 점도 꼭 챙겨야 한다. 4. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.In.. 백준 1049 기타줄 (Java) 1. 문제 링크 1049번: 기타줄 첫째 줄에 N과 M이 주어진다. N은 100보다 작거나 같은 자연수이고, M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 M개의 줄에는 각 브랜드의 패키지 가격과 낱개의 가격이 공백으로 구분하여 주 www.acmicpc.net 2. 문제 및 입출력예제 3. 문제 풀이 기타줄의 패키지 가격은 배열에 저장하고, 낱개 가격은 제일 작은 가격만 저장한다. 최솟값은 각 패키지로 샀을 때의 가격마다 패키지로 사고 남은 만큼 낱개로 사는 가격으로 했다. 그렇게 구한 패키지를 샀을 경우의 최솟값과 낱개만으로 샀을 때의 가격을 비교해서 출력한다. 근데 다시 보니까 둘 다 최솟값만 구했으면 배열을 사용하지 않아도 되니까 더 좋을 것 같았다. 근데 유의미한 차이는 없더라...ㅎ 4. .. 백준 17135 캐슬 디펜스 (Java) 1. 문제 링크 17135번: 캐슬 디펜스 첫째 줄에 격자판 행의 수 N, 열의 수 M, 궁수의 공격 거리 제한 D가 주어진다. 둘째 줄부터 N개의 줄에는 격자판의 상태가 주어진다. 0은 빈 칸, 1은 적이 있는 칸이다. www.acmicpc.net 2. 문제 및 입출력예제 3. 문제 풀이 궁수의 조합을 먼저 구하고 그 조합으로 dfs를 진행한다. 사정거리 안에 있는 적을 찾고 비교해서 최솟값을 계속 바꾼다. 최솟값이 있다면 boolean 배열의 값을 true로 한다. (이 배열은 같은 적을 공격할 경우를 대비해서 만들었다.) 모든 궁수가 공격할 적을 찾았다면 기존 배열인 map의 값을 0으로 바꾸고 count를 증가한다. 그러고 한 줄씩 아래로 내리고 count값이 크다면 값을 바꾼다. 다른 조합으로 .. 백준 1697 숨바꼭질 (Java) 1. 문제 링크 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 2. 문제 및 입출력예제 3. 문제 풀이 BFS를 이용해 문제를 풀었다. N과 K가 같을 경우 움직일 필요가 없으니 0을 출력하고 끝난다. 그 외의 경우에는 bfs() 함수로 넘어갔다. -1, +1, *1를 하면서 각 값이 범위 안에 들어가면 큐에 넣었다. 하나씩 큐에서 빼면서 값이 도착지점에 도착할 때까지 그 과정을 반복하면 된다. 4. 코드 import java.util.ArrayDeque; import java.u.. 이전 1 ··· 15 16 17 18 19 20 21 ··· 27 다음