본문 바로가기

분류 전체보기510

백준 JAVA 1874 스택 수열 https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 어제 못풀고 다시 도전하고 블로그 참고해서 풀었다. 그리고 오늘 다시 백지에서 풀었는데 성공! stack 문제이지만, 구현문제를 많이 풀어봐야겠다고 느끼는 문제였다. package BAEKJOON.Silver.Ⅲ; import java.util.ArrayList; import java.util.Scanner; imp.. 2022. 8. 12.
block I/O VS non-block I/O 개념 block I/O 와 non-block I/O 가 어떻게 동작하는지 알아본다. block I/O - I/O 작업을 요청한 프로세스/스레드는 요청이 완료될 때까지 블락됨(기다림) 스레드가 read blocking system call 을 실행하게 되면 블락된다 커널에서는 read I/O를 실행한다. 시간이 지나고 응답을 주면 커널이 응답을 받고 data를 커널에서 user로 옮긴다. 위 과정을 거치고 스레드는 깨어나서 다시 일을 진행한다. non-block I/O - 프로세스/스레드를 블락시키지 않고 요청에 대한 현재 상태를 즉시 리턴 스레드가 read non-blocking system call 을 실행한다. 커널모드로 컨택스트 스위칭이 되고, 커널에서는 read I/O 작업을 실행한다. 그리고 바로 리.. 2022. 8. 11.
백준 JAVA 4949 균형잡힌 세상 https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 각 줄은 마침표(".")로 끝난다 www.acmicpc.net 음 .. 먼저 조건에 맞게 코드를 짜서 출력대로 잘나와서 제출했는데 20%에서 계속 틀렸다. 예외가 뭔지를 모르겠다.. 다른 블로그를 한번 참고해보고 다시한번 풀어보았는데, 코드 그대로 따라가면서 볼때는 비슷해보이는데 왜 틀렸는지 잘모르겠다 ㅠㅠ 어떤 조건에서 틀린걸까.. 질문에 올려보고 답이 오면 다시한번 대입해봐야겠다. 실패코드 package BAEKJOON.Silver... 2022. 8. 11.
백준 JAVA 11651 좌표 정렬하기2 https://www.acmicpc.net/problem/11651 11651번: 좌표 정렬하기 2 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net package BAEKJOON.Silver.Ⅴ; import java.util.Arrays; import java.util.Scanner; public class NO11651 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.n.. 2022. 8. 11.
백준 JAVA 11650 좌표 정렬하기 https://www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net package BAEKJOON.Silver.Ⅴ; import java.util.Arrays; import java.util.Scanner; public class NO11650 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nex.. 2022. 8. 11.
백준 10816 JAVA 숫자 카드2 https://www.acmicpc.net/problem/10816 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 처음 일반 배열로 풀었을때는 시간 초과가 났다. HashMap을 사용해야 하는 문제였다. HashMap + print로 출력하니 다시 시간초과. HashMap + StringBuffer 을 사용해서 풀었다. 정답은 나오나 시간초과 package BAEKJOON.Silver.Ⅳ; import java.util.Arrays; import java.util.Scanne.. 2022. 8. 10.
백준 JAVA 15829 Hashing https://www.acmicpc.net/problem/15829 15829번: Hashing APC에 온 것을 환영한다. 만약 여러분이 학교에서 자료구조를 수강했다면 해시 함수에 대해 배웠을 것이다. 해시 함수란 임의의 길이의 입력을 받아서 고정된 길이의 출력을 내보내는 함수로 정 www.acmicpc.net 사실 문제도 잘 이해가 안가서 문제 밑에 나와있는 힌트를 보고 풀었다. 그리고 풀었는데 계속 50점이 나와서 어떡하지 하다가 해싱 관련해서 지식이 없어 블로그를 찾아보게 되었다. 브론즈2인데 정답비율이 30% 인걸보면 역시 뭔가 있었다.. 해당 문제를 풀려면 모듈러 연산의 성질 이라는 것을 적용해야 한다. 분배법칙 이라는 것인데, 간단히 말하면 31%M 이나 31이나 똑같다는 점을 이용한다는 것.. 2022. 8. 10.
백준 JAVA 1436 영화감독 숌 https://www.acmicpc.net/problem/1436 1436번: 영화감독 숌 666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타 www.acmicpc.net package BAEKJOON.Silver.Ⅴ; import java.util.Scanner; public class NO1436 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int answer = 0; // 출력 int count = 0; // n 값이 될때.. 2022. 8. 10.
백준 JAVA 1181 단어 정렬 https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 단어를 정렬할 때 Comparator 를 구현하는 방법과 stream 을 이용해서 중복을 제거해서 풀었다 다른 답을 참고안하고 문법을 참고하면서 풀었다. 도움이 많이 되는 문제였다. package BAEKJOON.Silver.Ⅴ; import java.util.*; public class NO1181 { public static void main(String[] args) { Scann.. 2022. 8. 9.