본문 바로가기

Java/백준

(106)
[JAVA] 백준 1904 01타일 https://www.acmicpc.net/problem/1904 1904번: 01타일 지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이 www.acmicpc.net 문제 풀이 - "00"타일과 "1"타일로 만들 수 있는 이진수의 가짓수를 찾는 문제 - 1타일과 00타일을 이전의 타입의 붙이는 문제이므로 메모이제이션을 이용한 동적계획법으로 풀이 n=1 일때 1 n=2 일때 00,11 n=3 일때 001,111,100 n=4 일때 0000,1100,0011,1111,1001 n=5 일때 00001,11001,00111,11111,10011,00100,11100,100..
[JAVA] 백준 9184 신나는 함수 실행 9184번: 신나는 함수 실행 (acmicpc.net) 9184번: 신나는 함수 실행 입력은 세 정수 a, b, c로 이루어져 있으며, 한 줄에 하나씩 주어진다. 입력의 마지막은 -1 -1 -1로 나타내며, 세 정수가 모두 -1인 경우는 입력의 마지막을 제외하면 없다. www.acmicpc.net 재귀 함수 w(a,b,c) - a,b,c가 주어졌을 때 w(a,b,c)를 출력하는 프로그램 풀이 과정 동적 프로그램(DP, 동적 계획법) [Algorithm] 동적 프로그래밍 (DP, 동적 계획법) 이해하기 (+ 예제 코드) (tistory.com)
[JAVA] 백준 14889 스타트와 링크 14889번: 스타트와 링크 (acmicpc.net) 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net - n/2명으로 이루어진 스타트 팀과 링크 팀으로 사람들을 나눠야 함 - Sij는 i번 사람과 j번 사람이 같은 팀에 속했을 때, 팀에 더해진느 능력 - 팀의 능력치는 팀에 속한 모든 쌍의 능력치 Sij의 합 - Sij와 Sji는 다를 수도 있으며 i번 사람과 j번 사람이 같은 팀에 속했을 때, 팀에 더해지는 능력치는 Sij와 Sji이다 - 스타트 팀의 능력치와 링크 팀의 능력치 차이를 최소로 하려고 함 문제 풀이 [백준/BOJ] ..
[JAVA] 백준 2580 스도쿠 https://www.acmicpc.net/problem/2580 2580번: 스도쿠 스도쿠는 18세기 스위스 수학자가 만든 '라틴 사각형'이랑 퍼즐에서 유래한 것으로 현재 많은 인기를 누리고 있다. 이 게임은 아래 그림과 같이 가로, 세로 각각 9개씩 총 81개의 작은 칸으로 이루 www.acmicpc.net - 아래 그림과 같이 가로, 세로 각각 9개씩 총 81개의 작은 칸으로 이루어진 정사각형 판 위에서 이뤄지는데, 게임 시작 전 ㅇ리부 칸에는 1부터 9까지의 숫자 중 하나가 쓰여 있음 - 나머지 빈 칸을 채우는 방식은 다음과 같음 1. 각각의 가로줄과 세로줄에는 1부터 9까지의 숫자가 한 번씩만 나타나야 한다. 2. 굵은 선으로 구분되어 있는 3*3 정사각형 안에도 1부터 9까지의 숫자가 한 번씩..
[JAVA] 백준 9663 N-Queen 9663번: N-Queen (acmicpc.net) 9663번: N-QueenN-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오.www.acmicpc.net - N-Queen 문제는 크기가 N*N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제 - N이 주어졌을 떄 , 퀸을 놓는 방법의 수를 구하는 프로그램  문제 풀이  - 백트래킹을 사용하는 문제 - 백트래킹이란 재귀적으로 문제를 하나씩 풀어가면서 현재 재귀를 통해 확인 중인 노드가 제한된 조건에 위배되는지 판단하고, 만약 해당 노드가 제한된 조건을 위배한다면 그 노드를 제외하고 다음 단계로 나아가는 방식  - 현재 상태에..
[JAVA] 백준 11729 하노이 탑 이동 순서 11729번: 하노이 탑 이동 순서 (acmicpc.net) 11729번: 하노이 탑 이동 순서 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 www.acmicpc.net - 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. - 각 원판은 반경이 큰 순서대로 쌓여 있다. - 이제 수도승들이 다음 규칙에 따라 첫 번째 장데에서 세 번째 장대로 옮기려 한다. 1. 한 번에 한 개의 원판만을 다른 탑으로 옮길 수 있다. 2. 쌓아 놓은 원판은 항상 위의 것이 아래의 것 보다 작아야 한다. - 이 작업을 수행하는 데 필요한 이동 순서..
[JAVA] 백준 2447 별 찍기 - 10 2447번: 별 찍기 - 10 (acmicpc.net) 2447번: 별 찍기 - 10 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 www.acmicpc.net - N이 3의 거듭제곱이라고 할 때, 크기 N의 패턴은 N*N 정사각형 모양이다. - 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 하나씩 있는 패턴 - N이 3보다 클 경우, 크기 N의 패턴은 공백으로 채워진 개운데의 (N/3)*(N/3) 정사각형을 크기 N/3의 패턴으로 둘러싼 형태 풀이 과정 [백준] 2447번 : 별 찍기 - 10 - JAVA [자..
[JAVA] 백준 4779 칸토어 집합 4779번: 칸토어 집합 (acmicpc.net) 4779번: 칸토어 집합 칸토어 집합은 0과 1사이의 실수로 이루어진 집합으로, 구간 [0, 1]에서 시작해서 각 구간을 3등분하여 가운데 구간을 반복적으로 제외하는 방식으로 만든다. 전체 집합이 유한이라고 가정하고, www.acmicpc.net - 칸토어 집합은 0과 1사이의 실수로 이루어진 집합으로, 구간 [0,1]에서 시작해서 각 구간을 3등분하여 가운데 구간을 반복적으로 제외하는 방식으로 만든다 1. - 가 3N개 있는 문자열에서 시작한다. 2. 문자열을 3등분 한 뒤, 가운데 문자열을 공백으로 바꿈, 이렇게 하면 선(문자열) 2개가 남는다. 3. 이제 각 선(문자열)을 3등분 하고, 가운데 문자열을 공백으로 바꾼다. 이 과정은 모든 선의 길이가 ..