목록Algorithm/백준 BOJ (44)
다희의 코딩 성장일기
[ 문제 ] [백준] 2578. 빙고 (자바 JAVA) 문제 링크 : https://www.acmicpc.net/problem/2578 2578번: 빙고 첫째 줄부터 다섯째 줄까지 빙고판에 쓰여진 수가 가장 위 가로줄부터 차례대로 한 줄에 다섯 개씩 빈 칸을 사이에 두고 주어진다. 여섯째 줄부터 열째 줄까지 사회자가 부르는 수가 차례대로 www.acmicpc.net # 접근 방법 및 풀이 구현 문제다. 실버 5인데 실버5 보다는 실버3같은? 문제다. 5X5 map 크기에 입력을 받아 숫자를 담고, 사회자가 부르는 숫자대로 빙고를 체크해야한다. 사회자가 부르는 번호가 map의 어디 좌표 (i, j)에 있는지 알기 위해 HashMap을 이용해서 담았다. key는 번호고, value는 Point로 i,j를 담..
[ 문제 ] [백준] 2608. 로마 숫자 (자바 JAVA) 문제 링크 : https://www.acmicpc.net/problem/2608 2608번: 로마 숫자 첫째 줄과 둘째 줄에 하나씩 로마 숫자로 표현된 수가 주어진다. 입력된 각 수는 2000 보다 작거나 같고, 두 수의 합은 4000보다 작다. www.acmicpc.net # 접근 방법 및 풀이 문자열+구현+자료구조 문제다. 문제 제대로 안 읽고 규칙 대충 넘기고 풀었더니 완전 잘못 접근해서 다시 꼼꼼히 읽고 풀었다. 문제는 주어진 두개의 로마숫자를 더해 숫자로 표현하고, 해당 숫자를 다시 로마숫자로 표현해야한다. 따라서 makeNum(), makeString() 함수를 두개로 나눠 풀었다. 로마숫자 기호에 따라 숫자값이 있으므로 HashMa..
[ 문제 ] [백준] 1967. 트리의 지름 (자바 JAVA) 문제 링크 : https://www.acmicpc.net/problem/1967 1967번: 트리의 지름 파일의 첫 번째 줄은 노드의 개수 n(1 ≤ n ≤ 10,000)이다. 둘째 줄부터 n-1개의 줄에 각 간선에 대한 정보가 들어온다. 간선에 대한 정보는 세 개의 정수로 이루어져 있다. 첫 번째 정수는 간선이 연 www.acmicpc.net # 접근 방법 및 풀이 DFS로 풀었다. 1~N까지 노드와 연결된 간선정보를 "양방향 인접리스트"로 표현했다. 간선에 가중치가 있으므로 연결된 노드 번호와 가중치를 담기 위해 Node라는 클래스를 만들어서 입력을 받았다. 1~N까지 모든 노드에 대해 각 노드마다 DFS를 통해 연결된 노드 끝까지 가보며..
[ 문제 ] [백준] 2800. 괄호 제거 (자바 JAVA) 문제 링크 : https://www.acmicpc.net/problem/2800 2800번: 괄호 제거 첫째 줄에 음이 아닌 정수로 이루어진 수식이 주어진다. 이 수식은 괄호가 올바르게 쳐져있다. 숫자, '+', '*', '-', '/', '(', ')'로만 이루어져 있다. 수식의 길이는 최대 200이고, 괄호 쌍은 적어도 1개 www.acmicpc.net # 접근 방법 및 풀이 문자열 + 스택 + 재귀 문제다. 정답률이 33퍼로 낮길래 일단 풀고 봤더니 틀렸다. 반례 찾아보니, 답에 중복이 있다면 제거해주어야한다. 이부분때문에 정답률이 낮은 것 같다. 먼저 풀이는 다음과 같다. 1. 스택으로 "괄호 쌍 인덱스" 리스트에 담아주기 2. 리스트에..
[ 문제 ] [백준] 10451. 순열 사이클 (자바 JAVA) 문제 링크 : https://www.acmicpc.net/problem/10451 10451번: 순열 사이클 1부터 N까지 정수 N개로 이루어진 순열을 나타내는 방법은 여러 가지가 있다. 예를 들어, 8개의 수로 이루어진 순열 (3, 2, 7, 8, 1, 4, 5, 6)을 배열을 이용해 표현하면 \(\begin{pmatrix} 1 & 2 &3&4&5&6&7&8 \\ 3 www.acmicpc.net # 접근 방법 및 풀이 그래프 문제다. 처음에는 문제보고 무슨 소리지 했는데 이해하면 바로 풀 수 있다. 1~N개까지 숫자를 방향그래프로 나타낼 수 있는데, 그 표현은 다음과 같다. 문제 예시대로 N=8이라면 노드는 1~8번까지 있고, 다음과 같이..
[ 문제 ] [백준] 1254. 펠린드롬 만들기 (자바 JAVA) 문제 링크 : https://www.acmicpc.net/problem/1254 1254번: 팰린드롬 만들기 동호와 규완이는 212호에서 문자열에 대해 공부하고 있다. 규완이는 팰린드롬을 엄청나게 좋아한다. 팰린드롬이란 앞에서부터 읽으나 뒤에서부터 읽으나 같게 읽히는 문자열을 말한다. 동호는 www.acmicpc.net # 접근 방법 및 풀이 이런 문제가 코테로 나오면 바로 풀었을까 싶은 문제다.. 대신 한번 풀어보면 쉽게 풀 수 있다. 문제대로 팰린드롬이란 "문자를 앞으로 읽어도 뒤로 읽어도 같게 읽히는 문자열"이다. 먼저, 문자열이 펠린드롬인지 확인하는 함수를 만든다. 펠린드롬인지 확인하는 방법은 "앞의 인덱스와(start)" "뒤의 ..