Algorithm
-
https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 각 문자열은 마지막 글자를 제외하고 영문 알파벳, 공백, 소괄호("( )"), 대괄호("[ ]")로 이루어져 있으며, 온점(".")으로 끝나고, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마지막에 www.acmicpc.net 4949, 균형잡힌 세상 [ 난이도 : 실버 4 ] 이번 문제는 스택을 사용해서 풀어보겠다. # Process input : 입력받은 String 이 "." 이 아닐 때까지 입력을 받고 solve 라는 메서드를 통해 답을 도출한다. static String str; static void input() { while(true) { str = scan.nextLine(); if(..
(JAVA) [BOJ]백준 4949번, 균형잡힌 세상https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 각 문자열은 마지막 글자를 제외하고 영문 알파벳, 공백, 소괄호("( )"), 대괄호("[ ]")로 이루어져 있으며, 온점(".")으로 끝나고, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마지막에 www.acmicpc.net 4949, 균형잡힌 세상 [ 난이도 : 실버 4 ] 이번 문제는 스택을 사용해서 풀어보겠다. # Process input : 입력받은 String 이 "." 이 아닐 때까지 입력을 받고 solve 라는 메서드를 통해 답을 도출한다. static String str; static void input() { while(true) { str = scan.nextLine(); if(..
2023.06.13 -
https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 1158, 요세푸스 문제 [ 난이도 : 실버 4 ] 이번 문제는 큐를 사용해서 풀어보겠다. # Process input : N 과 M 을 입력받고, N만큼의 수를 큐에 넣어준다. static int N, M; static Queue Q = new LinkedList(); static void input() { N = scan.nextInt(); M = scan.nextInt(); for(int i=1; i
(JAVA) [BOJ]백준 1158번, 요세푸스 문제https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 1158, 요세푸스 문제 [ 난이도 : 실버 4 ] 이번 문제는 큐를 사용해서 풀어보겠다. # Process input : N 과 M 을 입력받고, N만큼의 수를 큐에 넣어준다. static int N, M; static Queue Q = new LinkedList(); static void input() { N = scan.nextInt(); M = scan.nextInt(); for(int i=1; i
2023.06.11 -
https://www.acmicpc.net/problem/22233 22233번: 가희와 키워드 1번째 글을 쓰고 난 후에, 메모장에 있는 키워드는 set, floyd, os가 됩니다. 2번째 글을 쓰고 난 후에, 메모장에 있는 키워드는 set, os가 됩니다. map은 1번째 글과 2번째 글에 중복으로 등장하였음을 www.acmicpc.net 22233, 가희와 키워드 [ 난이도 : 실버 2 ] 이번 문제는 시간복잡도를 잘 고려해주어야 한다. N과 M의 범위가 2 X 10^5 까지이다. ArrayList 의 contains 를 사용한 풀이를 했을 때는 시간 초과가 발생할 수 있다. 그렇기 때문에 HashMap 을 사용한 풀이에 대해 설명해보겠다. # Process Input static int N, M..
(JAVA) [BOJ]백준 22233번, 가희와 키워드https://www.acmicpc.net/problem/22233 22233번: 가희와 키워드 1번째 글을 쓰고 난 후에, 메모장에 있는 키워드는 set, floyd, os가 됩니다. 2번째 글을 쓰고 난 후에, 메모장에 있는 키워드는 set, os가 됩니다. map은 1번째 글과 2번째 글에 중복으로 등장하였음을 www.acmicpc.net 22233, 가희와 키워드 [ 난이도 : 실버 2 ] 이번 문제는 시간복잡도를 잘 고려해주어야 한다. N과 M의 범위가 2 X 10^5 까지이다. ArrayList 의 contains 를 사용한 풀이를 했을 때는 시간 초과가 발생할 수 있다. 그렇기 때문에 HashMap 을 사용한 풀이에 대해 설명해보겠다. # Process Input static int N, M..
2023.06.03 -
https://www.acmicpc.net/problem/21921 21921번: 블로그 첫째 줄에 $X$일 동안 가장 많이 들어온 방문자 수를 출력한다. 만약 최대 방문자 수가 0명이라면 SAD를 출력한다. 만약 최대 방문자 수가 0명이 아닌 경우 둘째 줄에 기간이 몇 개 있는지 출력한다 www.acmicpc.net 21921, 블로그 [ 난이도 : 실버 3 ] 이번 문제는 투포인터 생각났지만 단순 반복문으로 풀이했다. # Process input : 방문자 수 N 과 연속으로 확인 할 일수인 M 을 입력받고 배열을 생성해준다. static int N, M; static int[] arr; static void input() { N = scan.nextInt(); M = scan.nextInt(); a..
(JAVA) [BOJ]백준 21921번, 블로그https://www.acmicpc.net/problem/21921 21921번: 블로그 첫째 줄에 $X$일 동안 가장 많이 들어온 방문자 수를 출력한다. 만약 최대 방문자 수가 0명이라면 SAD를 출력한다. 만약 최대 방문자 수가 0명이 아닌 경우 둘째 줄에 기간이 몇 개 있는지 출력한다 www.acmicpc.net 21921, 블로그 [ 난이도 : 실버 3 ] 이번 문제는 투포인터 생각났지만 단순 반복문으로 풀이했다. # Process input : 방문자 수 N 과 연속으로 확인 할 일수인 M 을 입력받고 배열을 생성해준다. static int N, M; static int[] arr; static void input() { N = scan.nextInt(); M = scan.nextInt(); a..
2023.05.29 -
https://www.acmicpc.net/problem/20920 20920번: 영단어 암기는 괴로워 첫째 줄에는 영어 지문에 나오는 단어의 개수 $N$과 외울 단어의 길이 기준이 되는 $M$이 공백으로 구분되어 주어진다. ($1 \leq N \leq 100\,000$, $1 \leq M \leq 10$) 둘째 줄부터 $N+1$번째 줄까지 외울 단 www.acmicpc.net 20920, 영단어 암기는 어려워 [ 난이도 : 실버 3 ] 이번 문제는 HashMap 과 List 를 사용하여 풀이해보겠다. # Process input : 단어의 수 N과 길이의 기준 M 이주어진다. M보다 길이가 같거나 긴 단어들을 HashMap 에 넣어주겠다. static int N, M; static String str;..
(JAVA) [BOJ]백준 20920번, 영단어 암기는 외로워https://www.acmicpc.net/problem/20920 20920번: 영단어 암기는 괴로워 첫째 줄에는 영어 지문에 나오는 단어의 개수 $N$과 외울 단어의 길이 기준이 되는 $M$이 공백으로 구분되어 주어진다. ($1 \leq N \leq 100\,000$, $1 \leq M \leq 10$) 둘째 줄부터 $N+1$번째 줄까지 외울 단 www.acmicpc.net 20920, 영단어 암기는 어려워 [ 난이도 : 실버 3 ] 이번 문제는 HashMap 과 List 를 사용하여 풀이해보겠다. # Process input : 단어의 수 N과 길이의 기준 M 이주어진다. M보다 길이가 같거나 긴 단어들을 HashMap 에 넣어주겠다. static int N, M; static String str;..
2023.05.29 -
https://www.acmicpc.net/problem/17266 17266번: 어두운 굴다리 인하대학교 후문 뒤쪽에는 어두운 굴다리가 있다. 겁쟁이 상빈이는 길이 조금이라도 어둡다면 가지 않는다. 따라서 굴다리로 가면 최단거리로 집까지 갈수 있지만, 굴다리는 어둡기 때문에 빙 www.acmicpc.net 17266, 어두운 굴다리 [ 난이도 : 실버 4 ] 이번 문제는 이분탐색을 사용해서 풀어보겠다. # Process input : 굴다리의 길이 N, 가로등의 개수 M, 그리고 가로등의 위치 X가 주어진다. static int N, M; static int[] width; static void input() { N = scan.nextInt(); M = scan.nextInt(); width = ne..
(JAVA) [BOJ]백준 17266번, 어두운 굴다리https://www.acmicpc.net/problem/17266 17266번: 어두운 굴다리 인하대학교 후문 뒤쪽에는 어두운 굴다리가 있다. 겁쟁이 상빈이는 길이 조금이라도 어둡다면 가지 않는다. 따라서 굴다리로 가면 최단거리로 집까지 갈수 있지만, 굴다리는 어둡기 때문에 빙 www.acmicpc.net 17266, 어두운 굴다리 [ 난이도 : 실버 4 ] 이번 문제는 이분탐색을 사용해서 풀어보겠다. # Process input : 굴다리의 길이 N, 가로등의 개수 M, 그리고 가로등의 위치 X가 주어진다. static int N, M; static int[] width; static void input() { N = scan.nextInt(); M = scan.nextInt(); width = ne..
2023.05.29 -
https://www.acmicpc.net/problem/9017 9017번: 크로스 컨트리 입력 데이터는 표준입력을 사용한다. 입력은 T 개의 테스트 케이스로 주어진다. 입력 파일의 첫 번째 줄에 테스트 케이스의 수를 나타내는 정수 T 가 주어진다. 두 번째 줄부터는 두 줄에 하나의 www.acmicpc.net 9017, 크로스 컨트리 [ 난이도 : 실버 4 ] 이번 문제는 구현 문제인데 머리에 있는 로직을 무작정 코드로 짜다 보니 개인적으로는 휴율적으로 풀었다는 생각이 들지 않는다. 더 좋은 풀이가 있다면 댓글로 달아주시면 감사하겠습니다,, : ) # Process input : 등수 N 과 N만큼의 팀이 주어진다. 이를 기반으로 배열을 생성해주고, 팀의 범위가 1-200 이니까 201의 team 배..
(JAVA) [BOJ]백준 9017번, 크로스 컨트리https://www.acmicpc.net/problem/9017 9017번: 크로스 컨트리 입력 데이터는 표준입력을 사용한다. 입력은 T 개의 테스트 케이스로 주어진다. 입력 파일의 첫 번째 줄에 테스트 케이스의 수를 나타내는 정수 T 가 주어진다. 두 번째 줄부터는 두 줄에 하나의 www.acmicpc.net 9017, 크로스 컨트리 [ 난이도 : 실버 4 ] 이번 문제는 구현 문제인데 머리에 있는 로직을 무작정 코드로 짜다 보니 개인적으로는 휴율적으로 풀었다는 생각이 들지 않는다. 더 좋은 풀이가 있다면 댓글로 달아주시면 감사하겠습니다,, : ) # Process input : 등수 N 과 N만큼의 팀이 주어진다. 이를 기반으로 배열을 생성해주고, 팀의 범위가 1-200 이니까 201의 team 배..
2023.05.29 -
https://www.acmicpc.net/problem/1244 1244번: 스위치 켜고 끄기 첫째 줄에는 스위치 개수가 주어진다. 스위치 개수는 100 이하인 양의 정수이다. 둘째 줄에는 각 스위치의 상태가 주어진다. 켜져 있으면 1, 꺼져있으면 0이라고 표시하고 사이에 빈칸이 하나씩 www.acmicpc.net 1244, 스위치 켜고 끄기 [ 난이도 : 실버 4 ] 이번 문제는 구현 문제이다. 쉬운 문제인데, 다른 부분은 다 쉽게 해결했는데 배수 구하는 부분을 잘못생각해서 이상하게 구현하여 고생을 좀 했다. 부디 같은 실수를 하는 사람이 없길 바란다 .. # Process input : 스위치의 개수, 스위치 여부와 학생 수를 차례로 받아준다. 이번 문제에서는 스위치를 스위칭 해야 하기 때문에 ch..
(JAVA) [BOJ]백준 1244번, 스위치 켜고 끄기https://www.acmicpc.net/problem/1244 1244번: 스위치 켜고 끄기 첫째 줄에는 스위치 개수가 주어진다. 스위치 개수는 100 이하인 양의 정수이다. 둘째 줄에는 각 스위치의 상태가 주어진다. 켜져 있으면 1, 꺼져있으면 0이라고 표시하고 사이에 빈칸이 하나씩 www.acmicpc.net 1244, 스위치 켜고 끄기 [ 난이도 : 실버 4 ] 이번 문제는 구현 문제이다. 쉬운 문제인데, 다른 부분은 다 쉽게 해결했는데 배수 구하는 부분을 잘못생각해서 이상하게 구현하여 고생을 좀 했다. 부디 같은 실수를 하는 사람이 없길 바란다 .. # Process input : 스위치의 개수, 스위치 여부와 학생 수를 차례로 받아준다. 이번 문제에서는 스위치를 스위칭 해야 하기 때문에 ch..
2023.05.26