본문 바로가기
반응형

분류 전체보기123

백준 2448. 별찍기 11 🅰 백준 2448. 별찍기 11 2448번: 별 찍기 - 11 첫째 줄에 N이 주어진다. N은 항상 3×2k 수이다. (3, 6, 12, 24, 48, ...) (0 ≤ k ≤ 10, k는 정수) www.acmicpc.net ✏️ 문제 풀이 재귀를 이용하여 삼각형을 3등분을 한 다음 같은 모양의 삼각형을 찍어주었다. 일단 삼각형을 프린트 할 수 있는 함수를 하나 생성하고, 재귀함수를 생성해주었다. 재귀함수 내에서는 N==3(삼각형 높이가 3)이 될때까지 재귀를 돌린 후 프린트함수를 통해 배열에 저장을 해주었다. 시작 꼭지점을 기준으로 삼각형을 3등분 해주었다. star(N / 2, x, y); //중심 star(N / 2, x + N / 2, y + N / 2); //좌 star(N / 2, x + N .. 2021. 9. 6.
백준 11728. 배열합치기 🅰 백준 11728. 배열합치기 11728번: 배열 합치기 첫째 줄에 배열 A의 크기 N, 배열 B의 크기 M이 주어진다. (1 ≤ N, M ≤ 1,000,000) 둘째 줄에는 배열 A의 내용이, 셋째 줄에는 배열 B의 내용이 주어진다. 배열에 들어있는 수는 절댓값이 109보다 작거 www.acmicpc.net ✏️ 문제 풀이 mergesort의 전형적인 문제이다. 배열을 나눠서 다시 합치는 과정을 통해 정렬을 하는데 합치는 부분만 따로 구현을 해주었다. 이미 입력 데이터는 정렬되어 있기 때문에 arrN 배열과 arrM배열을 0번째 부터 탐색을 해줘서 더 작은 수를 sb에 추가해주었다. 만약 index를 배열 끝까지 다 방문하였다면 if문을 이용하여 그 배열을 제외한 다른 배열의 데이터를 계속해서 넣어주.. 2021. 9. 6.
백준 10816. 숫자카드2 🅰 백준 10816. 숫자카드2 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net ✏️ 문제 풀이 HashMap을 이용하여 중복되는 카드의 개수를 저장해주었다. 그 외에는 숫자카드1과 마찬가지로 이분탐색을 하면서 재귀를 구현하여서 문제를 풀었다. ✏️ 소스코드 package divideandconquer; import java.util.*; import java.io.*; /*HaseMap을 이용하여 key,value값을 저장해주었다.*/ public class Main_실버4_.. 2021. 9. 6.
백준 1074. Z 🅰 백준 1074. Z 1074번: Z 한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. N > 1인 경우, 배열을 www.acmicpc.net ✏️ 문제 풀이 백준의 색종이, 쿼드트리랑 비슷한 문제이다. 시간제한이 0.5초이기 때문에 모든 케이스를 탐색할 수는 없다. 재귀를 이용하여 2차원배열을 4등분하고, r,c가 위치하고 있는 배열만 탐색하도록 구현하였다. 그리고 나눠진 배열의 시작점을 매개변수로 보내주어서 r,c를 몇번째로 방문했는지 체크해주었다. ✏️ 소스코드 package divideandconquer; import java.util.Scanner; public.. 2021. 9. 5.
백준 10815. 숫자 카드 🅰 백준 10815. 숫자 카드 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net ✏️ 문제 풀이 숫자를 정렬한 다음 이분탐색을 이용하여 문제를 풀었다. 중간값을 비교하여 탐색하는 과정을 재귀로 구현하였는데 생각보다 수행시간이 오래걸렸다. 그래서 재귀방식 말고 main문 안에서 바로 답을 찾도록 구현 하였는데 0.1초밖에 안 줄어들었다. start, end, middle 값 설정 목표값 middle과 비교하여 1. ansmiddle이면 start = middle+1 middle = .. 2021. 8. 30.
백준 1759. 암호 만들기 🅰 백준 1759. 암호 만들기 1759번: 암호 만들기 첫째 줄에 두 정수 L, C가 주어진다. (3 ≤ L ≤ C ≤ 15) 다음 줄에는 C개의 문자들이 공백으로 구분되어 주어진다. 주어지는 문자들은 알파벳 소문자이며, 중복되는 것은 없다. www.acmicpc.net ✏️ 문제 풀이 ✏️ 소스코드 package bruteforce; import java.util.*; import java.io.*; /*순열 틀렸습니다. 재귀로 다시 풀어보겠습니다. * 2. 재귀로 풀어서 맞았습니다 뿌듯 * */ public class Main_골드5_1759_손은성 { static int L, C, vowelCount,consonCount; static int input[], ans[]; static boolean.. 2021. 8. 26.
백준 5014. 스타트링크 🅰 백준 5014. 스타트링크 5014번: 스타트링크 첫째 줄에 F, S, G, U, D가 주어진다. (1 ≤ S, G ≤ F ≤ 1000000, 0 ≤ U, D ≤ 1000000) 건물은 1층부터 시작하고, 가장 높은 층은 F층이다. www.acmicpc.net ✏️ 문제 풀이 ✏️ 소스코드 package bruteforce; import java.util.*; import java.io.*; public class Main_골드5_5014_손은성 { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringToke.. 2021. 8. 26.
백준 9663. N-Queen 🅰 백준 9663. N-Queen 9663번: N-Queen N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. www.acmicpc.net ✏️ 문제 풀이 ✏️ 소스코드 package bruteforce; import java.util.*; import java.io.*; public class Main_골드5_9663_손은성 { static int chess[], cnt, N; public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamRe.. 2021. 8. 26.
백준 2251. 물통 🅰 백준 2251. 물통 2251번: 물통 각각 부피가 A, B, C(1≤A, B, C≤200) 리터인 세 개의 물통이 있다. 처음에는 앞의 두 물통은 비어 있고, 세 번째 물통은 가득(C 리터) 차 있다. 이제 어떤 물통에 들어있는 물을 다른 물통으로 쏟아 부 www.acmicpc.net ✏️ 문제 풀이 ✏️ 소스코드 package bruteforce; import java.util.*; import java.io.*; public class Main_실버1_2251_손은성 { static final int max = 201; public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(ne.. 2021. 8. 26.