https://www.acmicpc.net/problem/11279 11279번: 최대 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 www.acmicpc.net [풀이] 이전에 최소 힙을 문제 푼것과 유사하다. 우선순위 큐를 구현하면 최소 힙이 기본적으로 구성되기 때문에 최대 힙을 구현하기 위해서는 반대 순서, 즉 Collections.reverseOrder()를 사용하면 된다. 이후 0이 나올 때 우선순위 큐에서의 값을 반환하면 된다. (주의할 점) 우선순위 큐를 구현하면 풀 수 있는 간단한 문제였기에 특별히 주의할 부분은 없었다. ..
https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net [풀이] (average) : 평균을 계산해야하므로 double형을 사용해야 한다. 이후, 반올림을 사용해서 값을 반환하면 된다. (median) : 중위수를 계산한다. 리스트 크기의 반에 해당하는 인덱스를 반환하면 된다. (mode) : 최빈수를 계산한다. 이 부분이 문제를 푸는 가장 어려운 부분..?? 이었다. 과정을 하나씩 살펴보면 - 입력 받은 값이 음수일 경우 절대값, 그리고 4000을 더해야한다. (..
https://www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net [풀이] 처음에는 if문을 이용해 해당하는 알파벳이 있는지 조건을 만들려 했다. 작성 중에 뭔가 너무 노가다?스러운 기분이 들어 다시 풀이를 생각했으며 String 배열을 만들어 입력받는 문자열에 해당하는 것이 있는지 contains(), 그리고 있다면 replaceAll() 메소드를 이용해 풀었다. (주의할 점) 문제의 난이도가 그리 높지 않았기 때문에 크게..
https://www.acmicpc.net/problem/3085 3085번: 사탕 게임 예제 3의 경우 4번 행의 Y와 C를 바꾸면 사탕 네 개를 먹을 수 있다. www.acmicpc.net [풀이] 이중 for문으로 값을 하나씩 확인하기 때문에 오른쪽, 아래 부분의 값에 대해서 신경쓰면 된다. swap 메소드를 구현하려했지만 Call By Reference vs Call By Value 문제로 인해 Main 메소드 내에서 바꾸는 것이 훨씬 간단하다고 생각해서 따로 구현하지 않았다. 아래 블로그를 통해 다시 한번 공부할 수 있게 되었다!(만약, 헷갈리시는 분은 아래 글을 통해 공부하시면 좋을 것 같습니다!) https://ecsimsw.tistory.com/entry/%EC%9E%90%EB%B0%94-..
https://www.acmicpc.net/problem/11719 11719번: 그대로 출력하기 2 입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄이 주어질 수도 있고, 각 줄의 앞 뒤에 공백이 www.acmicpc.net [풀이] 기존에는 항상 BufferedReader를 이용해서 풀었는데 이번에는 Scanner를 이용해서 풀었다. Scanner에 hasNextLine() 메소드가 있기 때문에 보다 편리하다는 생각이 들었기에 Scanner를 사용했다. Java의 입출력에 대한 기초적인 연습을 할 수 있는 문제였다! [코드] import java.io.IOException; import java..
https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net [풀이] 스택을 활용하는 전형적인 문제였다. 입력받는 문자열을 확인하여 1. 문자열이 '('일 경우, 스택에 추가 2. 문자열이 ')'일 경우, 기존의 스택이 비어져있나 확인 후 스택에 무엇인가 있다면 스택에서 값 제거 위의 방식으로 조건문을 만들면 풀 수 있는 문제였다. (이외에도 오늘 푸려고 한 문제가 2문제 정도 더 있었는데 풀지를 못했다... 조만간 다시 도전..