반응형

Problem Solved/BOJ

    [BOJ][Java] 4949번 - 균형잡힌 세상

    문제 백준 4949번 문제: 균형잡힌 세상 문제 설명 위(괄호 문제)와 같은데 괄호의 종류가 다양해진 문제 [BOJ][Java] 9012번 - 괄호 문제의 응용 문제이다. 나는 괄호 문제에서 조건만 추가해서 답을 구했다. 추가 조건 .이 오면 멈춰야 하므로 while문으로 변경했다. 문자열 .이 오면 while문 중지하도록 했다. 소괄호()일 때와 대괄호[]일 때의 조건을 분리해 스택에 쌓이고 빠질 수 있도록 했다. 이 때, [)와 같은 짝이 맞지 않는 괄호가 true가 되는 것을 막기 위해 stack.peek() == "(" 조건을 추가해 주었다. 성공 코드 import java.util.Scanner; import java.util.Stack; public class Main { public stat..

    [BOJ][Nodejs] 1676번 - 팩토리얼 0의 개수

    문제 백준 1676번 문제: 팩토리얼 0의 개수 문제 설명 소인수분해의 성질을 활용하여 N!의 끝에 0이 얼마나 많이 오는지 구하는 문제 N 팩토리얼의 결과값 끝에 붙은 0을 알기 위해서는 2와 5의 개수를 알면 된다. 근데 패턴을 보면, 5가 1개 나올 때, 2도 1개 이상이 나온다. 즉, 5의 개수를 알면 0의 개수도 알 수 있다. 그래서 5의 배수만큼 커지도록 반복문을 돌려 5의 개수를 더한다. 성공 코드 const readline = require("readline"); const solution = n => { let answer = 0; for (let i = 5; i { const r = readline.createInterface({ input: process.stdin, output: p..

    [BOJ][Java] 9012번 - 괄호

    문제 백준 9012번 문제: 괄호 문제 설명 주어진 문자열이 올바른 괄호열인지 판단하는 문제 문제 풀이 입력 데이터의 수(n)만큼 반복문을 돈다. 빈 스택과 vps 판별 boolean 값을 초기값으로 둔다. 문자열 하나씩 비교하기 위해 문자열 길이만큼 반복문을 돈다. (이면 스택에 넣는다. )이면서 스택이 비어있지 않으면 스택에 있는 마지막 요소를 pop하여 제거한다. 여기서 스택에서 제거하는 이유는, vps라면 짝이 맞기 때문에 마지막에는 스택이 비워져야 맞는 것이기 때문이다. )이면서 스택이 비어 있으면 (가 스택에 없다는 뜻이므로 vps를 false로 바꾸고 for문을 멈춘다. 만약 반복문을 다 돌았는데 스택이 비어있지 않다면 vps를 false로 변경해 예외 처리를 해 준다. vps가 true이면..

    [BOJ][Java] 10773번 - 제로

    문제 백준 10773번 문제: 제로 문제 설명 가장 최근에 쓴 수를 지우는 문제 Stack을 이용해 푸는 문제이다. 풀이 과정 k만큼 반복문을 돌면서 그 값이 0인지 아닌지를 판별한다. 0이 아니면 stack에 넣고 0이면 pop하여 가장 최신의 값을 뺀다. 최종 값을 계산하기 위해 stack이 비어있는지 확인한다. 비어 있으면 0을 출력한다. 값이 있으면 모든 숫자를 pop하면서 더하고 더한 값을 출력한다. 성공 코드 import java.util.Scanner; import java.util.Stack; public class Main{ public static void main(String[] args){ Scanner s=new Scanner(System.in); int k, sum; k = s...

    [BOJ][Java] 10828번 - 스택

    문제 백준 10828번 문제: 스택 문제 설명 스택의 개념을 익히고 실습하는 문제 정수를 저장하는 스택을 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하는 문제 스택을 선언하고 5개의 명령어(push, pop, size, empty, top)를 구분지어 각각의 명령어에 해당하는 값을 출력하도록 한다. Java에는 스택이라는 자료구조를 사용할 수 있어서 import만 시키면 거의 동일한 명령어를 사용할 수 있다. 성공 코드 import java.util.Scanner; import java.util.Stack; public class Main{ public static void main(String[] args){ Scanner s=new Scanner(System.in); int n =..

    [BOJ][Java] 2981번 - 검문

    문제 백준 2981번 문제: 검문 문제 설명 N개의 수를 M으로 나누었을 때, 나머지가 전부 같은 M을 찾는 문제 도저히 모르겠다. 아무래도 js로 다시 풀어야겠다. 성공 코드(참고: https://pangsblog.tistory.com/62) import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; public class Main { public static void main(String[] args) thr..