Algorithm
백준 1992번 쿼드트리 [ Java ]
1992번: 쿼드트리 첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1≤N ≤64의 범위를 가진다. 두 번째 줄부터는 길이 N 의 문자열이 N 개 들어온다. 각 문자열은 0 또는 1의 숫자로 이루어져 있으며, 영상의 각 점들을 나타낸다. www.acmicpc.net 바로 이전문제(색종이 만들기)를 조금 바꿔주면 풀리는 문제입니다. 입력에 띄어쓰기가 없기 때문에 String으로 입력받아 split으로 쪼개주고 괄호 달아주는것과 조건에 맞으면 삽입해주는 것으로 수정하였습니다.
백준 2630번 색종이 만들기 [ Java ]
2630번: 색종이 만들기 첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다. 하얀색으로 칠해진 칸은 0, 파란색으로 칠해진 칸은 1로 주어지며, 각 숫자 사이에는 빈칸이 하나씩 있다. www.acmicpc.net 정사각형에서 자신이 편한 부분(좌표)을 다음 메소드로 보내줍니다. 저는 왼쪽 맨 위 좌표를 넘겨주었습니다. 그리고 넘겨준 좌표에서 참거짓을 판단(같은 색으로 채워져있는지)하고 true면 카운트해주고 아닐경우 더 작은 함수로 쪼갭니다.
프로그래머스 코딩테스트 연습 Level2 - 소수찾기 [ Java ]
코딩테스트 연습 - 소수 찾기 | 프로그래머스 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 조각으로 만들 수 있는 소수가 몇 개인지 return 하도록 solution 함수를 완성해주세요. 제한사항 numbers는 길이 1 이상 7 이하인 문자열입니다. numbers는 0~9까지 숫자만으로 이루어져 있습니다. 013은 0, 1, 3 숫자가 적힌 종이 programmers.co.kr 소수를 찾는 과정은 메소드로 정리해주고 백트래킹을 이용해 가능한 경우의 수를 구해주었습니다.
백준 1929번 소수 구하기 [ Java ]
1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) www.acmicpc.net
백준 1932번 정수 삼각형 [ Java ]
1932번: 정수 삼각형 문제 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 위 그림은 크기가 5인 정수 삼각형의 한 모습이다. 맨 위층 7부터 시작해서 아래에 있는 수 중 하나를 선택하여 아래층으로 내려올 때, 이제까지 선택된 수의 합이 최대가 되는 경로를 구하는 프로그램을 작성하라. 아래층에 있는 수는 현재 층에서 선택된 수의 대각선 왼쪽 또는 대각선 오른쪽에 있는 것 중에서만 선택할 수 있다. 삼각형의 크기는 1 이상 500 이하이다. 삼각형을 이루고 있는 각 수는 www.acmicpc.net
백준 1149번 RGB거리 [ Java ]
1149번: RGB거리 RGB거리에 사는 사람들은 집을 빨강, 초록, 파랑중에 하나로 칠하려고 한다. 또한, 그들은 모든 이웃은 같은 색으로 칠할 수 없다는 규칙도 정했다. 집 i의 이웃은 집 i-1과 집 i+1이고, 첫 집과 마지막 집은 이웃이 아니다. 각 집을 빨강으로 칠할 때 드는 비용, 초록으로 칠할 때 드는 비용, 파랑으로 드는 비용이 주어질 때, 모든 집을 칠하는 비용의 최솟값을 구하는 프로그램을 작성하시오. www.acmicpc.net
백준 14889번 스타트와 링크 [ Java ]
14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net 두 팀으로 나누기 위해 백트래킹 함수를 N과M (4)와 같은 방법으로 작성했습니다. 4가지인 경우는 인덱스 기준으로 (0,1) (2,3) , (0,2) (1,3) , (0,3) (1,2) , (1,2) (0,3) , (1,3) (0,2) , (2,3) (0,1) 이런식으로 세어지고 start 배열을 정했을 때 나머지를 세어주는 형식으로 link 배열을 만들었습니다.
백준 14888번 연산자 끼워넣기 [ Java ]
14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, 곱셈(×)의 개수, 나눗셈(÷)의 개수이다. www.acmicpc.net dfs를 이용해서 모든 경우를 탐색하는(브루트 포트) 문제였습니다.
백준 2580번 스도쿠 [ Java ]
2580번: 스도쿠 스도쿠는 18세기 스위스 수학자가 만든 '라틴 사각형'이랑 퍼즐에서 유래한 것으로 현재 많은 인기를 누리고 있다. 이 게임은 아래 그림과 같이 가로, 세로 각각 9개씩 총 81개의 작은 칸으로 이루어진 정사각형 판 위에서 이뤄지는데, 게임 시작 전 몇 몇 칸에는 1부터 9까지의 숫자 중 하나가 쓰여 있다. 나머지 빈 칸을 채우는 방식은 다음과 같다. 각각의 가로줄과 세로줄에는 1부터 9까지의 숫자가 한 번씩만 나타나야 한다. 굵은 선으로 구분되어 있는 3 www.acmicpc.net 잔 실수가 많아서 하나하나 디버깅 하는 과정이 오래걸렸습니다.
백준 1018번 체스판 다시 칠하기 [ Java ]
1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 좌표 하나를 기준으로 8x8씩 확인해 나가는 것을 모든 좌표를 해야해서 메소드로 따로 해주었고 BW의 구별은 boolean으로 최솟값을 찾는것은 stack에 넣어서 정렬후 제일 첫 번째 인덱스(최솟값)을 출력해주었습니다.