알고리즘

    백준 1018번 체스판 다시 칠하기 [ Java ]

    백준 1018번 체스판 다시 칠하기 [ Java ]

    1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 좌표 하나를 기준으로 8x8씩 확인해 나가는 것을 모든 좌표를 해야해서 메소드로 따로 해주었고 BW의 구별은 boolean으로 최솟값을 찾는것은 stack에 넣어서 정렬후 제일 첫 번째 인덱스(최솟값)을 출력해주었습니다.

    백준 15624번 피보나치 수 7 [ Java ]

    백준 15624번 피보나치 수 7 [ Java ]

    15624번: 피보나치 수 7 첫째 줄에 n번째 피보나치 수를 1,000,000,007으로 나눈 나머지를 출력한다. www.acmicpc.net 동적계획법으로 푸는데 메모리가 너무 커 배열을 이용하면 안되고 0번째의 경우도 처리해주어야 했습니다.

    백준 9461번 파도반 수열 [ Java ]

    백준 9461번 파도반 수열 [ Java ]

    9461번: 파도반 수열 문제 오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의 길이를 k라 했을 때, 그 변에 길이가 k인 정삼각형을 추가한다. 파도반 수열 P(N)은 나선에 있는 정삼각형의 변의 길이이다. P(1)부터 P(10)까지 첫 10개 숫자는 1, 1, 1, 2, 2, 3, 4, 5, 7, 9이다. N이 주어졌을 때, P(N)을 구하 www.acmicpc.net 피보나치 수열과 유사합니다.

    백준 1904번 01타일 [ Java ]

    백준 1904번 01타일 [ Java ]

    1904번: 01타일 지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이의 공부를 방해하기 위해 0이 쓰여진 낱장의 타일들을 붙여서 한 쌍으로 이루어진 00 타일들을 만들었다. 결국 현재 1 하나만으로 이루어진 타일 또는 0타일을 두 개 붙인 한 쌍의 00타일들만이 남게 되었다. 그러므로 지원이는 타일로 더 이상 크기가 N인 모든 2진 수 www.acmicpc.net 이전에 풀었던 문제랑 같은 점화식이라서 a(n) = a(n-1) + a(n-2) 초항만 변경해서 풀었습니다.

    백준 11726번 2xn 타일링 [ Java ]

    백준 11726번 2xn 타일링 [ Java ]

    11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. www.acmicpc.net 규칙성 찾아서 점화식을 세우는 DP문제 입니다.

    백준 1152번 단어의 개수 [ Java ]

    백준 1152번 단어의 개수 [ Java ]

    1152번: 단어의 개수 첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열의 앞과 뒤에는 공백이 있을 수도 있다. www.acmicpc.net 입력 받은 값들을 띄어쓰기를 기준으로 쪼개서 배열에 저장해주었습니다. 저장하는 과정에서 공백으로 시작할 경우 빈 배열이 생기는 현상이 있어서 따로 처리해주었습니다. 그리고 공백만 입력되는 경우도 따로 처리해주었습니다.

    백준 10866번 덱 [ Java ]

    백준 10866번 덱 [ Java ]

    10866번: 덱 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘쨰 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 않은 명령이 주어지는 경우는 없다. www.acmicpc.net LinkedList를 사용해서 풀었습니다. println써서 시간초과로 한번 틀리고 Stringbuiler를 사용했지만 n을 입력받을때 개행문자까지 들어가서 마지막 값이 출력 안되는것을 수정했습니다.

    백준 1966번 프린터 큐 [ Java ]

    백준 1966번 프린터 큐 [ Java ]

    1966번: 프린터 큐 문제 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 쌓여서 FIFO - First In First Out - 에 따라 인쇄가 되게 된다. 하지만 상근이는 새로운 프린터기 내부 소프트웨어를 개발하였는데, 이 프린터기는 다음과 같은 조건에 따라 인쇄를 하게 된다. 현재 Queue의 가장 앞에 있는 문서의 ‘중요도’를 www.acmicpc.net 이전에 프로그래머스에서 풀었던 문제랑 같은 내용입니다. 프로그래머스 코딩테스트 연습 Level2 - 프린터 [ Java ] 코딩테스트 연습 - 프린터 | 프로그래머스 일반적인 프린터는 인쇄 요청이 들어..

    백준 11866번 요세푸스 문제 0 [ Java ]

    백준 11866번 요세푸스 문제 0 [ Java ]

    11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net 인덱스 제거될 인덱스를 어떻게 처리할지가 중요했던 문제인 것 같습니다.

    백준 1003번 피보나치 함수 [ Java ]

    백준 1003번 피보나치 함수 [ Java ]

    1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net 함수의 출력이 몇 번 되는지를 저장했습니다. 0과 1의 출력에 대한 피보나치를 구하는 문제였습니다.