목록알고리즘 (97)
It's easy, if you try
문제 11401번: 이항 계수 3 자연수 \(N\)과 정수 \(K\)가 주어졌을 때 이항 계수 \(\binom{N}{K}\)를 1,000,000,007로 나눈 나머지를 구하는 프로그램을 작성하시오. www.acmicpc.net 풀이 1,000,000,007 는 int 범위 중 가장 큰 소수 값이다. import java.io.*; import java.util.*; public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static StringTokenizer st; static int MOD = 1000000007; public static void main(String[] ar..
문제 10826번: 피보나치 수 4 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net 풀이 import java.io.*; import java.math.*; public class Main_BOJ_10826_피보나치수4 { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.o..
컨벡스 헐(Convex hull) 이란? 한글로는 볼록 껍질이라고 한다. 2차원 평면에 N개의 점이 주어졌을 때, 이들 중 몇 개의 점을 골라 볼록 다각형을 만드는데, 나머지 모든 점을 내부에 포함하도록 할 수 있다. 이것이 볼록 껍질이다. N = 10 이라고 할 때 한 예는 아래 사진과 같다. 그라함 스캔? 볼록 껍질(컨벡스 헐)을 만들 때 유명한 알고리즘이 그라함 스캔 알고리즘이다. 아래는 그라함 스캔으로 컨벡스 헐을 만드는 시뮬레이션 영상이다. Graham Scan: find the convex hull of a point set 가장 y가 작은 점을 구한다. (동영상에서는 시작 점인 7이 y가 가장 작은 점이다.) 그 점을 기준으로 직선의 각을 기준으로 정렬한다. 각이 가장 작은 점부터 조사하면서..
문제 2239번: 스도쿠 스도쿠는 매우 간단한 숫자 퍼즐이다. 9×9 크기의 보드가 있을 때, 각 행과 각 열, 그리고 9개의 3×3 크기의 보드에 1부터 9까지의 숫자가 중복 없이 나타나도록 보드를 채우면 된다. 예를 들어 다 www.acmicpc.net 풀이 import java.io.*; public class Main { static BufferedReader br =new BufferedReader(new InputStreamReader(System.in)); static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); static int[][] map= new int[9][9]; // 행(rows), 열(c..
문제 15961번: 회전 초밥 첫 번째 줄에는 회전 초밥 벨트에 놓인 접시의 수 N, 초밥의 가짓수 d, 연속해서 먹는 접시의 수 k, 쿠폰 번호 c가 각각 하나의 빈 칸을 사이에 두고 주어진다. 단, 2 ≤ N ≤ 3,000,000, 2 ≤ d ≤ 3,000, 2 www.acmicpc.net 풀이 import java.io.*; import java.util.*; public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static StringTokenizer st; static int N, typeCnt, maxEatCnt, coupon; static int cnt= 0, max..
문제 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com > 벽돌 깨기 검색하기 ! 풀이 dropBoxToEmptyArea() 함수 즉, 벽돌들이 아래로 내려오게 하는 함수를 짜는게 제일 어려웠다ㅠㅠ bfs, 중복 순열을 사용해서 하라는대로 하면 되는 문제였다 ! import java.io.*; import java.util.*; public class Solution_5656_벽돌깨기 { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static StringTokenizer st; static int[][] map,..
문제 2458번: 키 순서 1번부터 N번까지 번호가 붙여져 있는 학생들에 대하여 두 학생끼리 키를 비교한 결과의 일부가 주어져 있다. 단, N명의 학생들의 키는 모두 다르다고 가정한다. 예를 들어, 6명의 학생들에 대하여 www.acmicpc.net 풀이1 : 플로이드 와샬 import java.util.*; import java.io.*; public class Main_BOJ_2458_키순서 { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static StringTokenizer st; static int[][] minEdge; static int N, M; static int INF = 501; pu..
문제 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr import java.util.*; class Solution { public String solution(String new_id) { String answer = ""; // 1단계 answer = new_id.toLowerCase(); // 2단계 // answer = answer.replaceAll("[^-_.a-z0-9]",""); String temp = ""; for(int i=0; i< answer.length(); i++) { cha..
문제 1915번: 가장 큰 정사각형 첫째 줄에 n, m(1 ≤ n, m ≤ 1,000)이 주어진다. 다음 n개의 줄에는 m개의 숫자로 배열이 주어진다. www.acmicpc.net 풀이 import java.util.*; import java.io.*; public class Main_BOJ_1915_가장큰정사각형 { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static StringTokenizer st; static int N, M, maxNum = 0; static char[][] map; static int[][] dp; public static void main(String[] args) thr..
문제 1520번: 내리막 길 여행을 떠난 세준이는 지도를 하나 구하였다. 이 지도는 아래 그림과 같이 직사각형 모양이며 여러 칸으로 나뉘어져 있다. 한 칸은 한 지점을 나타내는데 각 칸에는 그 지점의 높이가 쓰여 있으 www.acmicpc.net 풀이 import java.util.*; import java.io.*; public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static StringTokenizer st; static int N, M, total = 0; static int[][] map, visited; static int[] dx = {-1, 1, 0, 0}; s..