전체 글

Better than yesterday

    BOJ 10808 알파벳 개수 [Java]

    BOJ 10808 알파벳 개수 - 문제 링크 https://www.acmicpc.net/problem/10808 - 문제 해설 a부터 z가 단어 S에 나온 횟수를 담는 배열 cnt를 만들어 문제를 풀었다. 배열 cnt의 인덱스 0~25는 각각 a~z에 해당한다. char a를 선언하고, a가 'a'~'z'까지 증가하며 입력된 단어에 있는지 검사하였다. 'a'가 아스키 코드로 97이기에 97을 빼주면, 알파벳에 해당하는 인덱스 값을 얻을 수 있다. - 코드 보기 import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader b..

    BOJ 10866 덱 [Java]

    BOJ 10866 덱 - 문제 링크 https://www.acmicpc.net/problem/10866 - 문제 해설 util.Deque를 이용하면 쉽게 풀 수 있는 문제이지만 덱을 구현해보는 것에 목적을 두고 풀었다. 명령 수가 n이면 최대로 커질 수 있는 덱의 크기가 n이다. 크기가 2n이고 가운데서 head와 tail이 시작하는 배열로 덱을 구현하였다. 크기가 n인 배열로 원형 큐처럼 덱을 구현을 할 수도 있지만, 그렇게하면 push하거나 pop할 때, 기존 원소들의 위치를 이동시켜줘야하는 등의 추가로 신경써야할 것이 많아져서 그렇게 하지 않았다. - 코드 보기 import java.io.*; import java.util.*; class Deque { int head; int tail; int a..

    BOJ 10845 큐 [Java]

    BOJ 10845 큐 - 문제 링크 https://www.acmicpc.net/problem/10845 - 문제 해설 util.Queue를 이용하면 쉽게 풀 수 있지만 큐를 구현하는 것을 목적으로 하고 풀었다. head는 큐의 맨 앞 원소의 인덱스이고, tail은 큐의 맨 뒤 원소 인덱스보다 1 큰 값이다. tail은 왜 큐의 맨 뒤 원소의 인덱스가 아닌 1을 더한 값인지는 큐에 원소가 1개만 들어 있는 경우를 생각해보면 쉽게 알 수 있다. 문자열끼리 비교할 때 == 연산자를 사용하면 안된다. == 연산자는 객체가 같은 지를 비교하여서 객체가 같다면 더 확인하지 않고 true를 반환한다. 문자열이 같은 지 비교하고자 한다면 equals()를 이용해야한다. - 코드 보기 import java.io.*; i..

    BOJ 10799 쇠막대기 [Java]

    BOJ 10799 쇠막대기 - 문제 링크 https://www.acmicpc.net/problem/10799 - 문제 해설 '('가 입력으로 들어오면 쇠막대기나 레이저가 하나 추가된다는 의미이므로 스택에 '('를 쌓는다. ')'가 입력으로 들어오는 경우가 중요하다. ')'가 입력으로 왔을 경우는 2가지로 나눌 수 있다. 레이저이거나, 쇠막대기의 끝 점이다. 레이저인 경우 스택에 쌓인 쇠막대기의 수만큼 조각이 생긴다. 쇠막대기의 끝 점인 경우 조각이 1개가 추가된다. cnt는 조각의 수이고, 레이저를 판별하기 위해 입력을 배열에 담았다. - 코드 보기 import java.io.*; import java.util.Stack; public class ..

    BOJ 9012 괄호 [Java]

    BOJ 9012 괄호 - 문제 링크 https://www.acmicpc.net/problem/9012 - 문제 해설 VPS가 아닌 경우는 어떤 경우가 있을지를 생각해보자. 짝이 되는 ')'가 없어 '('이 남는 경우 짝이 되는 '(' 없이 ')'이 먼저 입력되는 경우 '('가 입력될 때마다 '('를 스택에 담아주고, ')'가 입력되면 스택의 최상단에 있는 '('를 pop해주는 방식으로 동작하게 한다. 그렇게 구현하였을 경우 과정이 끝났을 때, 스택이 비어있지 않으면 1의 경우이다. 스택이 비어있을 때, ')'가 들어오는 경우가 2의 경우이다. 위 내용을 바탕으로 코드를 구현하였..