목록수학 (75)
기록방
👉 문제링크 2407번: 조합 n과 m이 주어진다. (5 ≤ n ≤ 100, 5 ≤ m ≤ 100, m ≤ n) www.acmicpc.net 🔸 문제 분석 🔸 nCm을 출력한다. n개의 수에서 m개를 선택하는 조합의 공식과 예시는 다음과 같다. n! / (n-r)!r! n=5, r=2 : 5*4*3/2*1 n이 팩토리얼로 아주 큰 값으로 커져 long의 범위를 벗어나므로 BigInteger를 사용해야한다. 🔸 코드 🔸 import java.math.BigInteger; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = s..
👉 문제링크 1183번: 약속 마법사 N명이 머글 문화를 이해하기 위해 머글과 약속을 잡았다. 각 마법사는 한 명의 머글을 만날 예정이다. 하지만, 마법사는 약속 시간보다 빨리 또는 늦게 도착할 수 있기 때문에 고민에 빠 www.acmicpc.net 🔸 문제 분석 🔸 |Ai+T-Bi|의 합이 최소가 되는 T의 개수를 구한다. T는 A-B 배열을 정렬하고 그 중앙값이다. n이 홀수면 1개가 나온다. n이 짝수면 n/2
👉 문제링크 1072번: 게임 김형택은 지금 몰래 Spider Solitaire(스파이더 카드놀이)를 하고 있다. 형택이는 이 게임을 이길 때도 있었지만, 질 때도 있었다. 누군가의 시선이 느껴진 형택이는 게임을 중단하고 코딩을 하기 시 www.acmicpc.net 🔸 문제 분석 🔸 총 게임 횟수 x와 승리 수 y가 입력된다. 승률 z는 y/x*100 에서 소수점을 버린다. 승리 수를 추가할 수 있는데, 최소 몇 번의 게임을 해야 z가 변할지 출력한다. 값이 올라갈 수 있는 최대는 99.9999...이므로, z의 초기값이 99와 100일때는 변하지 않으므로 -1을 출력한다. 🔸 코드 🔸 import java.util.Scanner; public class Main { public static void m..
👉 문제링크 1057번: 토너먼트 김지민은 N명이 참가하는 스타 토너먼트에 진출했다. 토너먼트는 다음과 같이 진행된다. 일단 N명의 참가자는 번호가 1번부터 N번까지 배정받는다. 그러고 난 후에 서로 인접한 번호끼리 스타를 www.acmicpc.net 🔸 문제 분석 🔸 n명의 참가자 중에 두 사람의 번호를 입력받는다. 2명씩 경기를 진행하며 이기면 올라간다. n이 홀수여서 혼자 남는 마지막 선수는 부전승으로 올라간다. 참가자 수 n이 1이 될때까지 반복한다. 두 사람은 무조건 승리한다. 두 사람이 만나는 라운드 수를 출력한다. 만나지 못하는 경우는 -1을 출력하지만, 그런 경우는 없다. 🔸 코드 🔸 import java.util.ArrayList; import java.util.Scanner; publi..
👉 문제링크 1004번: 어린 왕자 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 첫째 줄에 출발점 (x1, y1)과 도착점 (x2, y2)이 주어진다. 두 번째 줄에는 행성계의 개수 n이 주 www.acmicpc.net 🔸 문제 분석 🔸 시작점과 끝점을 선으로 이을때 최소로 통과하는 행성계의 수를 출력한다. 반드시 통과해야하는 행성계는 시작점, 끝점 중 하나를 원 안에 포함하고 다른 한 점이 밖에 있어야한다. 🔸 코드 🔸 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int t ..