본문 바로가기

분류 전체보기157

[백준] 9093번: 단어 뒤집기 💡문제 분석 요약주어진 문장을 단어의 순서는 바꾸지 않고 단어를 모두 뒤집어서 출력하는 문제이다. 💡알고리즘 설계한 문장씩 입력받아 맨 뒤에 “\n”를 추가한다.문장을 한 문자씩 검사한다.문자가 ‘ ‘또는 ‘\n’가 아닌 경우 스택에 추가한다.문자가 ‘ ‘또는 ‘\n’인 경우 스택에 있는 모든 값을 pop(출력)한 다음, ‘ ‘을 추가한다. 💡코드import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); .. 2024. 7. 16.
[백준] 1966번: 프린터 큐 💡문제 분석 요약프린터 대기열에서 문서의 중요도에 따라 인쇄 순서가 정해지는 프린터에서, 주어진 타켓 문서가 몇 번째로 인쇄되는지 출력하는 문제이다.시간 제한: 2초메모리 제한: 128MB 💡알고리즘 설계`Queue` 를 사용해 각 문서의 위치(인덱스)와 중요도를 저장한다.큐가 빌 때까지큐의 첫 번째 문서를 poll뒷 순서의 문서들과 중요도를 비교하여더 높은 중요도의 문서가 존재하면 첫 번째 문서를 맨 뒤로 이동 (출력X)~ 존재하지 않으면 출력 개수 증가(출력O) & 타겟 문서인지 확인 💡코드import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException.. 2024. 7. 12.
[Day3] 문자열 압축 해제 💡문제시간 제한: 1초엘리스 토끼는 문자열을 직접 압축 해제하려고 합니다.압축되지 않은 문자열 S가 주어졌을 때, 이 문자열 중 어떤 부분 문자열은 K(Q)와 같이 압축할 수 있습니다. 이것은 Q라는 문자열이 K 번 반복된다는 뜻입니다. K는 한 자릿수의 정수이고, Q는 0자리 이상의 문자열입니다.예를 들면, 53(8)은 다음과 같이 압축을 해제할 수 있습니다.53(8) = 5 + 3(8) = 5 + 888 = 5888압축된 문자열이 주어졌을 때, 이 문자열을 다시 압축을 푸는 프로그램을 작성하세요.지시사항입력첫째 줄에 압축된 문자열 S를 입력합니다.S의 길이는 최대 50입니다.문자열은 (, ), 숫자로만 구성되어 있습니다.출력압축되지 않은 문자열의 길이를 출력합니다.입력 예시11(18(72(7)))출.. 2024. 7. 11.
[백준] 9012번: 괄호 💡문제 분석 요약입력으로 주어진 괄호 문자열이 VPS(올바른 괄호 문자열)인지 아닌지를 판별하는 문제이다.시간제한: 1초메모리 제한: 128MB 💡알고리즘 설계입력받은 괄호 문자열에서 문자 하나씩 검사한다.‘(’ 이면 스택에 push‘)’ 이면스택이 비어있을 경우 ‘)’를 push하고 반복문 중단.스택이 비어있지 않을 경우 pop.스택이 비어있으면 “YES”, 비어있지 않으면 “NO”를 결과에 추가한다. 💡코드import java.io.*;import java.util.Stack;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedRe.. 2024. 7. 11.
[프로그래머스] 다리를 지나는 트럭 💡문제 분석 요약트럭들이 다리를 순서대로 건너는 상황이다. 다리에는 동시에 최대 bridge_length 대의 트럭이 올라갈 수 있고, 다리가 견딜 수 있는 최대 무게는 weight 이다. 모든 트럭이 다리를 건너는데 걸리는 최소 시간을 구하는 문제이다. 💡알고리즘 설계하나의 큐를 사용한다.pass_q: 다리 위에 있는 트럭들의 무게 저장시간(answer)를 1초씩 증가시키며, 매초마다 작업을 수행한다.다리를 완전히 건넌 트럭 처리pass_q의 크기가 bridge_length 이상이면, 가장 앞의 트럭을 제거하고 총 무게에서 뺀다.트럭이 다리에 올라올 수 있는지 확인대기 중인 트럭이 있고, (현재 다리 위 무게 + 대기 중인 첫 번째 트럭의 무게)가 weight 이하일 경우새 트럭을 pass_q에 추.. 2024. 7. 11.
[백준] 1158번: 요세푸스 문제 https://www.acmicpc.net/problem/10828 💡문제 분석 요약원을 이루며 앉아있는 N명의 사람 중 K번째 사람을 제거하는 과정을 N번 반복하여 제거되는 순서를 출력하는 문제이다.시간 제한: 2초메모리 제한: 256MB💡알고리즘 설계큐를 이용.1~N까지의 숫자를 큐에 offerK-1번째 까지 맨 앞 값을 poll 한 다음, 맨 뒤에 offerK번째 값을 poll 하여 결과 문자열에 추가2,3번을 N번 반복💡코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.LinkedList;import java.util.Queue;public clas.. 2024. 7. 10.
[백준] 10828번: 스택 https://www.acmicpc.net/problem/10828 💡문제 분석 요약스택을 구현하여 “연산 숫자”로 이루어진 명령에 따라 스택을 조작하는 문제이다.💡알고리즘 설계Scanner 클래스를 이용하여 N(명령의 수)과 명령을 입력받았다.Stack 클래스를 이용하여 주어지는 명령에 해당하는 메서드를 이용했다.push x: push 메서드 이용하여 값 출력popisEmpty 메서드를 이용해 스택이 비어있는지 확인pop 메서드 이용하여 값 출력size: size 메서드 이용하여 값 출력empty: isEmpty 메서드를 이용해 스택이 비어있는지 확인topisEmpty 메서드를 이용해 스택이 비어있는지 확인peek 메서드 이용하여 값 출력💡코드import java.util.Scanner;impor.. 2024. 7. 10.
반응형