목록BOJ (335)
기록방
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cgFWLQ/btsFFYa2fzq/V5ra8HmWc9vQ3VZC1D9nk0/img.png)
👉 문제링크 2166번: 다각형의 면적 첫째 줄에 N이 주어진다. 다음 N개의 줄에는 다각형을 이루는 순서대로 N개의 점의 x, y좌표가 주어진다. 좌표값은 절댓값이 100,000을 넘지 않는 정수이다. www.acmicpc.net 🔸 문제 분석 🔸 N개의 꼭지점으로 이루어진 다각형의 정보가 주어진다. 다각형의 넓이(면적)을 소수점 둘째 자리에서 반올림하여 첫째 자리까지 출력한다. 🔸 문제 풀이 🔸 신발끈 공식 (Shoelace formula)의 전형적인 연습 문제이다. x좌표와 y좌표를 입력받아 공식을 구현하고, 소수점 첫째 자리까지 반올림해 출력한다. 🔸 코드 🔸 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io...
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/DyfEw/btsFGjekpeY/ABFO4OJtln1W8MlrJ5B2LK/img.png)
👉 문제링크 13172번: Σ 모듈러가 11에서 1,000,000,007이 되어 답이 달라졌지만, 역시 3을 곱한 다음 1,000,000,007으로 나눈 나머지는 7이 된다. www.acmicpc.net 🔸 문제 분석 🔸 주사위 M개에 대해 i번째 주사위의 면 개수는 Ni, 면의 모든 값의 총합은 Si로 입력된다. 모든 주사위를 던졌을 때의 기대값을 계산한다. S1/N1 + S2/N2 + ... + SM/NM 계산의 어려움 때문에 임의의 분수 a / b를 모듈러를 이용해 (a * b-1 mod x)의 정수 값으로 계산한다. 🔸 문제 풀이 🔸 문제의 수학 이론 설명이 꽤 길지만, 읽어보면 이해 못할 정도는 아니다. 보다 정확한 확률 계산을 위해 모듈러 표현 방식을 사용한다는 것이다. 문제에서 제시된 공식을..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/efcVzS/btsFENADDdM/70Y9Uo74DurOa5CTgQFM11/img.png)
👉 문제링크 11054번: 가장 긴 바이토닉 부분 수열 첫째 줄에 수열 A의 크기 N이 주어지고, 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ N ≤ 1,000, 1 ≤ Ai ≤ 1,000) www.acmicpc.net 🔸 문제 분석 🔸 중간 원소를 기준으로 오름차순 후 내림차순이 이어지는 수열을 바이토닉 수열이라고 한다. 주어지는 수열의 부분 수열 중 가장 긴 바이토닉 수열의 길이를 출력한다. 🔸 문제 풀이 🔸 각 인덱스 별로 가장 긴 오름차순 수열과 가장 긴 내림차순 수열의 길이를 따로 구해 저장한다. 같은 인덱스의 두 값의 합 중 최대값을 출력한다. 🔸 코드 🔸 import java.io.*; import java.util.StringTokenizer; public class Ma..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/nTMFR/btsFqYHWbPJ/1TRKsasqR8RJLPCxKfQ5n0/img.png)
👉 문제링크 11779번: 최소비용 구하기 2 첫째 줄에 도시의 개수 n(1≤n≤1,000)이 주어지고 둘째 줄에는 버스의 개수 m(1≤m≤100,000)이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스 www.acmicpc.net 🔸 문제 분석 🔸 n개의 노드와 m개의 단방향 간선 정보가 주어진다. 시작 노드부터 목적지 노드까지의 경로 중 비용이 최소값이 되는 경로를 찾아, 비용과 경로 상의 노드 수 및 경로를 출력한다. 같은 최소값이면서 다른 경로일 수 있는데, 모두 정답으로 인정된다. 🔸 문제 풀이 🔸 다익스트라 알고리즘으로 최단경로를 구한다. 비용의 최소값 뿐만 아니라 최단경로를 출력해야 하므로, 값이 경신될 때 이전 출발 노드의 번호를 저..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/MZOjA/btsFofKkkCr/jk0IFLK9V8OkJkTAekPRL1/img.png)
👉 문제링크 9935번: 문자열 폭발 첫째 줄에 문자열이 주어진다. 문자열의 길이는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 둘째 줄에 폭발 문자열이 주어진다. 길이는 1보다 크거나 같고, 36보다 작거나 같다. 두 문자열은 모 www.acmicpc.net 🔸 문제 분석 🔸 기본 문자열과 폭발 문자열이 입력된다. 기본 문자열에서 폭발 문자열 부분이 폭발하며 지워지고, 남은 문자열은 다시 이어 붙는다. 더 폭발할 문자열이 남지 않았을 상태의 문자열을 출력한다. 남은 문자가 없으면 "FRULA"를 출력한다. 🔸 문제 풀이 🔸 문자열의 길이가 100만이기 때문에 O(n^2) 미만의 알고리즘을 사용해야 한다. 반복문 한 번에 계산할 수 있도록 한다. 새로운 문자열이 생기면 메모리 문제가 생길 수..