일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 다익스트라 알고리즘
- java
- 서버구축
- 완전탐색
- 스터디
- react
- BFS
- AWS
- 브루트포스
- 백준알고리즘
- Algorithm
- EC2
- 토이프로젝트
- Router
- 백준
- 탐욕법
- 동적프로그래밍
- sort
- url parsing
- mysql
- 알고리즘
- nodejs
- 리액트
- 라우터
- 자료구조
- Spring Boot
- spring
- 정렬
- ELB
- EventListener
- Today
- Total
목록알고리즘 공부 (55)
공부하는 블로그
10250번: ACM 호텔 문제 ACM 호텔 매니저 지우는 손님이 도착하는 대로 빈 방을 배정하고 있다. 고객 설문조사에 따르면 손님들은 호텔 정문으로부터 걸어서 가장 짧은 거리에 있는 방을 선호한다고 한다. 여러분은 지우를 도와 줄 프로그램을 작성하고자 한다. 즉 설문조사 결과 대로 호텔 정문으로부터 걷는 거리가 가장 짧도록 방을 배정하는 프로그램을 작성하고자 한다. 문제를 단순화하기 위해서 호텔은 직사각형 모양이라고 가정하자. 각 층에 W 개의 방이 있는 H 층 건물이라고 가정 www.acmicpc.net 호텔에 방문하는 투숙객 순서대로 거리가 짧은 객실부터 배정하여 방문 투숙객이 몇번째 방문객인지 입력하면 알맞은 객실 호수가 나오는 프로그램을 설계하는 문제이다. import java.util.Sca..
1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때문에 그룹 단어이지만, aabbbccb는 b가 떨어져서 나타나기 때문에 그룹 단어가 아니다. 단어 N개를 입력으로 받아 그룹 단어의 개수를 출력하는 프로그램을 작성하시오. www.acmicpc.net 단어에 존재하는 모든 문자에 대하여 각 문자가 연속해서 나타나는 그룹단어를 판별하는 문제이다. import java.util.Scanner; public class Main { static boolean isGroupword(String str) { int cur..
5622번: 다이얼 문제 상근이의 할머니는 아래 그림과 같이 오래된 다이얼 전화기를 사용한다. 전화를 걸고 싶은 번호가 있다면, 숫자를 하나를 누른 다음에 금속 핀이 있는 곳 까지 시계방향으로 돌려야 한다. 숫자를 하나 누르면 다이얼이 처음 위치로 돌아가고, 다음 숫자를 누르려면 다이얼을 처음 위치에서 다시 돌려야 한다. 숫자 1을 걸려면 총 2초가 필요하다. 1보다 큰 수를 거는데 걸리는 시간은 이보다 더 걸리며, 한 칸 옆에 있는 숫자를 걸기 위해선 1초씩 더 걸린다. www.acmicpc.net 해당하는 문자열에 알맞은 다이얼을 입력하여 총 입력 시간을 구하는 문제이다. import java.util.Scanner; public class Main { public static void main(St..
1065번: 한수 어떤 양의 정수 X의 자리수가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오. www.acmicpc.net 정수 X의 자리수가 등차수열을 이루는 수를 한수라고 한다. 주어진 정수 N에 대해서 1보다 크거나 같고 N보다 작거나 같은 한수의 개수를 출력하는 문제이다. import java.util.Scanner; public class Main { // 한수인지 아닌지 판별하는 함수 static boolean hansu(int n) { String num = n + ""; int len = num.length(); // 한자..
15596번: 정수 N개의 합 정수 n개가 주어졌을 때, n개의 합을 구하는 함수를 작성하시오. 작성해야 하는 함수는 다음과 같다. C, C11, C (Clang), C11 (Clang): long long sum(int *a, int n); a: 합을 구해야 하는 정수 n개가 저장되어 있는 배열 (0 ≤ a[i] ≤ 1,000,000, 1 ≤ n ≤ 3,000,000) n: 합을 구해야 하는 정수의 개수 리턴값: a에 포함되어 있는 정수 n개의 합 C++, C++11, C++14, www.acmicpc.net 정수 N개의 합을 구하는 함수를 만드는 문제이다. public class Test { long sum(int[] a) { long ans = 0; for(i = 0; i < a.length; i+..
4344번: 평균은 넘겠지 문제 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. 입력 첫째 줄에는 테스트 케이스의 개수 C가 주어진다. 둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다. 출력 각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자 www.acmicpc.net 평균이 넘는 학생의 비율을 구하는 문제이다. import java.util.Scanner; public class Main { public static void main(String[] args) ..
2577번: 숫자의 개수 첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 같거나 크고, 1,000보다 작은 자연수이다. www.acmicpc.net 입력된 정수 A B C를 곱한 결과에 0부터 9까지의 숫자가 몇번 반복되는지 알아내는 문제이다. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); int c = sc.nextInt(); String abc = a * b * c + ""; int[] count = new ..
10951번: A+B - 4 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 입력 종료에 대한 기준이 없는 EOF(End Of File) 문제이다. EOF에 대해 알아보고자 이 문제를 선택했다. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while(sc.hasNextInt()) { int a = sc.nextInt(); int b = sc.nextInt(); System.out.println(a + b); } } } 문제 자체는 간단하다. while문의 조건에 'sc.ha..