완전탐색
-
BOJ 1107 리모콘 자바(java) 풀이 랭크 : 골드5 백준 1107 리모컨 문제 정리 리모컨의 일부 숫자 버튼이 고장났다. 리모컨에는 0~9까지의 숫자 버튼과ㅏ +, - 버튼이 있다 '+' 버튼은 +1된 채널, '-' 버튼은 -1된 채널로 이동한다. 채널 0에서 -를 누른 경우에는 채널이 변하지 않고, 채널은 무한대 만큼 있다. 수빈이가 지금 이동하려고 하는 채널은 N이고, 고장난 버튼이 주어질 때, 채널 N으로 이동하기 위해 최소 몇번 버튼을 눌러야 하는지 구하시오 이동하려는 채널 최대 500,000 수빈이가 지금 보고 있는 채널은 100번 문제 접근 이 문제는 다음과 같은 사항을 고려하여야 합니다 고장난 버튼 수가 없는 경우 -> 입력 받지 않음 원하는 번호가 100번인 경우 -> 0 출력하고..
[완전탐색, 백트래킹] 백준 1107번 리모컨 자바 풀이BOJ 1107 리모콘 자바(java) 풀이 랭크 : 골드5 백준 1107 리모컨 문제 정리 리모컨의 일부 숫자 버튼이 고장났다. 리모컨에는 0~9까지의 숫자 버튼과ㅏ +, - 버튼이 있다 '+' 버튼은 +1된 채널, '-' 버튼은 -1된 채널로 이동한다. 채널 0에서 -를 누른 경우에는 채널이 변하지 않고, 채널은 무한대 만큼 있다. 수빈이가 지금 이동하려고 하는 채널은 N이고, 고장난 버튼이 주어질 때, 채널 N으로 이동하기 위해 최소 몇번 버튼을 눌러야 하는지 구하시오 이동하려는 채널 최대 500,000 수빈이가 지금 보고 있는 채널은 100번 문제 접근 이 문제는 다음과 같은 사항을 고려하여야 합니다 고장난 버튼 수가 없는 경우 -> 입력 받지 않음 원하는 번호가 100번인 경우 -> 0 출력하고..
2020.06.10 -
프로그래머스 카펫 자바(java) 풀이 Level 2 완전탐색 카펫 문제 정리 카펫은 중앙에는 빨간색, 테두리 1줄은 갈색으로 칠해져 있었다. 카펫의 갈색격자 수, 빨간색 격자 수는 알고 있다. 카펫의 가로, 세로 크기를 순서대로 담아 return 하여라. 카펫의 가로 길이 >= 세로길이 문제 풀이(Solution) level2의 문제이지만 level1이 더 맞지 않나 생각합니다. 카펫의 갈색의 개수와 빨간색의 개수를 더하여 카펫에서 총 격자의 개수를 구합니다. 총 격자 개수의 약수의 쌍을 구합니다. brown=10, red=2 인 경우 총 격자의 개수는 12입니다. 이때 카펫은 다음과 같이 가능합니다(1,12), (2,6), (3,4), (4,3), (6,2), (12,1)하지만 행의 길이가 3보다 작..
[완전탐색, 약수] 프로그래머스 level2 카펫 자바 풀이프로그래머스 카펫 자바(java) 풀이 Level 2 완전탐색 카펫 문제 정리 카펫은 중앙에는 빨간색, 테두리 1줄은 갈색으로 칠해져 있었다. 카펫의 갈색격자 수, 빨간색 격자 수는 알고 있다. 카펫의 가로, 세로 크기를 순서대로 담아 return 하여라. 카펫의 가로 길이 >= 세로길이 문제 풀이(Solution) level2의 문제이지만 level1이 더 맞지 않나 생각합니다. 카펫의 갈색의 개수와 빨간색의 개수를 더하여 카펫에서 총 격자의 개수를 구합니다. 총 격자 개수의 약수의 쌍을 구합니다. brown=10, red=2 인 경우 총 격자의 개수는 12입니다. 이때 카펫은 다음과 같이 가능합니다(1,12), (2,6), (3,4), (4,3), (6,2), (12,1)하지만 행의 길이가 3보다 작..
2020.05.08 -
sw expert academy 5656 구슬 깨기 자바(java) 풀이 모의 SW 역량 테스트 sw expert academy 5656 구슬 깨기 문제정리 구슬을 쏘아 벽돌을 깨드리려 한다. 벽돌이 있는 공간의 크기는 WxH이다. 구슬은 좌우로만 움직일 수 있어서 항상 맨 위에 있는 벽돌만 깨트릴 수 있다. 벽돌은 숫자 1~9로 표현되며, 구슬이 명중한 벽돌은 상하좌우로(벽돌에 적힌 숫자-1)칸 만큼 같이 제거된다. 빈 공간이 있을 경우 벽돌은 밑으로 떨어지게 된다. N개의 벽돌을 떨어트려 최대한 많은 벽돌을 제거하려고 한다. 벽돌을 떨어트린 후 남은 벽돌의 개수를 구하여라. 문제 풀이 모든 경우를 따져주기 위해서 중복 순열을 구해야 합니다. N이 3인 경우 000 ~ 999 (W=10)까지 모두 시뮬..
[중복순열, BFS] SWEA 5656번 구슬 깨기 자바 풀이 (모의 sw 역량 테스트)sw expert academy 5656 구슬 깨기 자바(java) 풀이 모의 SW 역량 테스트 sw expert academy 5656 구슬 깨기 문제정리 구슬을 쏘아 벽돌을 깨드리려 한다. 벽돌이 있는 공간의 크기는 WxH이다. 구슬은 좌우로만 움직일 수 있어서 항상 맨 위에 있는 벽돌만 깨트릴 수 있다. 벽돌은 숫자 1~9로 표현되며, 구슬이 명중한 벽돌은 상하좌우로(벽돌에 적힌 숫자-1)칸 만큼 같이 제거된다. 빈 공간이 있을 경우 벽돌은 밑으로 떨어지게 된다. N개의 벽돌을 떨어트려 최대한 많은 벽돌을 제거하려고 한다. 벽돌을 떨어트린 후 남은 벽돌의 개수를 구하여라. 문제 풀이 모든 경우를 따져주기 위해서 중복 순열을 구해야 합니다. N이 3인 경우 000 ~ 999 (W=10)까지 모두 시뮬..
2020.05.07 -
sw expert academy 2117번 홈 방법 서비스 자바(java) 풀이 모의 SW 역량 테스트 sw expert academy 2117번 홈 방범 서비스 문제정리 홈 방범 서비스는 마름모 모양으로만 제공된다. 서비스 영역의 크기 K가 커질 수록 운영비용이 커진다. 운영 비용 = K x K + (K - 1) x (K - 1) / K=2 일때 운영 비용은 2 x 2 + 1 * 1 = 5 이다. 이는 서비스 영역의 면적과 동일하다 도시를 벗어난 영역에 서비스를 제공해도 운영 비용은 변경되지 않는다. 홈 방범 서비스를 제공받는 집들은 각각 M의 비용을 지불 할 수 있다. 손해를 보지 않는 한에서 최대한 많은 집에 홈방법 서비스를 제공하려고 한다. 가장 많은 집들에 제공하는 서비스 영역을 찾고, 그 때의..
[완전 탐색, 맨해튼 거리] swea 2117번 모의 sw 역량 테스트 :: 홈 방범 서비스 자바 풀이sw expert academy 2117번 홈 방법 서비스 자바(java) 풀이 모의 SW 역량 테스트 sw expert academy 2117번 홈 방범 서비스 문제정리 홈 방범 서비스는 마름모 모양으로만 제공된다. 서비스 영역의 크기 K가 커질 수록 운영비용이 커진다. 운영 비용 = K x K + (K - 1) x (K - 1) / K=2 일때 운영 비용은 2 x 2 + 1 * 1 = 5 이다. 이는 서비스 영역의 면적과 동일하다 도시를 벗어난 영역에 서비스를 제공해도 운영 비용은 변경되지 않는다. 홈 방범 서비스를 제공받는 집들은 각각 M의 비용을 지불 할 수 있다. 손해를 보지 않는 한에서 최대한 많은 집에 홈방법 서비스를 제공하려고 한다. 가장 많은 집들에 제공하는 서비스 영역을 찾고, 그 때의..
2020.05.06 -
프로그래머스 소수찾기 자바(java) 풀이 Level 2 완전 탐색 소수 찾기 문제 정리 한자리 숫자가 적힌 종이가 있다. 종이 조각으로 만들 수 있는 소수가 몇 개 인지 return 하여라. 입력으로 주어지는 numbers는 길이 1 이상 7 이하의 문자열이다. 문제 풀이 numbers를 파싱하여 이용해서 만들 수 있는 모든 수를 만든 후 소수인지 확인합니다. 모든 순열을 확인합니다. n개의 수중 1,2,3..n개를 뽑는 모든 순열을 구합니다. 구한 문자를 숫자로 바꾸어 소수인지 판단합니다. 소수라면 set에 저장합니다. set에 저장하는 이유는 중복된 숫자를 방지하기 위함입니다. 소수인지 판단은 그 수의 루트값 까지 나눠보면 알 수 있습니다. 순열(Permutaion) 오랜만에 순열을 구현하려니 생각..
[완전탐색, 소수, 순열] level2 프로그래머스 소수 찾기 자바 풀이프로그래머스 소수찾기 자바(java) 풀이 Level 2 완전 탐색 소수 찾기 문제 정리 한자리 숫자가 적힌 종이가 있다. 종이 조각으로 만들 수 있는 소수가 몇 개 인지 return 하여라. 입력으로 주어지는 numbers는 길이 1 이상 7 이하의 문자열이다. 문제 풀이 numbers를 파싱하여 이용해서 만들 수 있는 모든 수를 만든 후 소수인지 확인합니다. 모든 순열을 확인합니다. n개의 수중 1,2,3..n개를 뽑는 모든 순열을 구합니다. 구한 문자를 숫자로 바꾸어 소수인지 판단합니다. 소수라면 set에 저장합니다. set에 저장하는 이유는 중복된 숫자를 방지하기 위함입니다. 소수인지 판단은 그 수의 루트값 까지 나눠보면 알 수 있습니다. 순열(Permutaion) 오랜만에 순열을 구현하려니 생각..
2020.05.04 -
프로그래머스 조이스틱 자바(java) 풀이 Level 2 조이스틱 먼저 이야기하자면 이 문제는 그리디로만 풀어야만 답으로 인정해줍니다. 물론 완전탐색으로 풀어도 TC 모두 정답이 나옵니다. 하지만 문제를 제대로 풀기 위해서는 완전탐색으로 풀어야 합니다. 그리디는 아무데서나 쓰는 것이 아니라했는데 여기서 확실히 깨닫습니다... 예시는 아래에서 이야기하겠습니다!! 문제 정리 기본 문자열은 길이가 몇이든 A로만 이루어져 있다. 위, 아래로 조이스틱을 움직이면 알파벳을 변경할 수 있다. 위로 이동하면 A->Z로 이동가능하다. 아래로 이동하면 Z->A로 이동가능하다. 만약 A에서 아래로 이동한다면 'Z'가 된다. 왼쪽, 오른쪽 키는 커서를 움직여 다른 문자위치로 움직일 수 있다. 이때 주어진 문자열..
[완전탐색] Level2 프로그래머스 조이스틱 진짜 정답 풀이(그리디는 안됨)프로그래머스 조이스틱 자바(java) 풀이 Level 2 조이스틱 먼저 이야기하자면 이 문제는 그리디로만 풀어야만 답으로 인정해줍니다. 물론 완전탐색으로 풀어도 TC 모두 정답이 나옵니다. 하지만 문제를 제대로 풀기 위해서는 완전탐색으로 풀어야 합니다. 그리디는 아무데서나 쓰는 것이 아니라했는데 여기서 확실히 깨닫습니다... 예시는 아래에서 이야기하겠습니다!! 문제 정리 기본 문자열은 길이가 몇이든 A로만 이루어져 있다. 위, 아래로 조이스틱을 움직이면 알파벳을 변경할 수 있다. 위로 이동하면 A->Z로 이동가능하다. 아래로 이동하면 Z->A로 이동가능하다. 만약 A에서 아래로 이동한다면 'Z'가 된다. 왼쪽, 오른쪽 키는 커서를 움직여 다른 문자위치로 움직일 수 있다. 이때 주어진 문자열..
2020.04.19