본문 바로가기

전체 글157

[백준] 2667번: 단지번호붙이기 💡문제 분석 요약주어진 지도 정보를 통해 연결된 집들의 단지를 찾아 단지 수와 각 단지 내 집의 수를 오름차순으로 출력하는 문제이다.시간 제한: 1초메모리 제한: 128MB 💡알고리즘 설계`int[n][n] house` 에 지도 정보를 저장한다.`house` 의 모든 위치를 반복집이 존재하고 방문하지 않은 경우 (`house[i][j] == 1 && !visited[i][j]`)단지 수(`count`)를 1 증가시키고, 단지 내 집의 수(`house_count`)를 1로 초기화한다.해당 위치을 방문 처리한다. (`visited[i][j] = true`)dfs 함수를 호출해 해당 위치의 상하좌우 집을 검사한다.`house_counts`에 현재 단지내 집의 수를 추가한다.dfs 함수현재 집의 상하좌우를 .. 2024. 7. 16.
[백준] 1260번: DFS와 BFS 💡문제 분석 요약입력받은 그래프의 정보를 DFS와 BFS로 탐색한 결과를 출력하는 문제이다.시간 제한: 2초메모리 제한: 128MB 💡알고리즘 설계그래프 정보를 인접 행렬로 저장한다.DFS 구현재귀 함수를 이용한다.방문한 노드를 visited = true(방문 체크)로 설정하고 StringBuilder에 저장한다.해당 노드와 인접한 노드 중 방문하지 않은 노드(visited == false)를 재귀 호출한다.BFS 구현큐를 이용한다.시작 노드를 큐에 넣고 visited = true 로 설정한다.큐가 빌 때까지 다음을 반복한다.큐에서 맨 앞 노드를 꺼내고, StringBuilder에 저장한다.꺼낸 노드와 인접한 노드 중 방문하지 않은 노드를 큐에 넣고 visited = true 로 설정한다. 💡코드i.. 2024. 7. 16.
[백준] 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.
반응형