[프로그래머스] 11053 N개의 최소공배수 - JAVA
·
알고리즘/문제풀이
[프로그래머스] 11053 N개의 최소공배수 - JAVA문제https://www.acmicpc.net/problem/14939문제 분석조건`arr`: 길이 1 이상 15 이하의 정수 배열각 원소는 1 이상 100 이하의 자연수배열에 주어진 모든 수의 최소공배수를 구해라풀이방법두 수의 최소공배수는 아래 공식을 사용해서 구할 수 있다.`LCM(a, b) = (a * b) / GCD(a, b)` GCD는 유클리드 호제법으로 구할 수 있음배열의 최소공배수는 순차적으로 두 수씩 계산해 나가면 된다코드class Solution { public int solution(int[] arr) { int answer = 1; int size = arr.length; for (int..
[백준/BOJ] 12946 하노이의 탑 - JAVA - Lv2
·
알고리즘/문제풀이
[백준/BOJ] 12946 하노이의 탑 - JAVA - Lv2문제https://school.programmers.co.kr/learn/courses/30/lessons/12946 문제 분석조건한 번에 한 개의 원판만 옮길 수 있다. 큰 원판이 작은 원판 위에 올라갈 수 없다.세 개의 기둥을 이용해 모든 원판을 시작 기둥에서 목표 기둥으로 옮겨야 한다.풀이방법원판이 1개일 경우, 시작 기둥에서 목표 기둥으로 바로 옮긴다.원판이 N개일 경우, 가장 큰 N번 원판을 목표 기둥으로 옮기기 위해 다음을 반복한다.N-1개의 원판을 보조 기둥으로 옮긴다.N번 원판을 목표 기둥으로 옮긴다.보조 기둥에 있던 N-1개의 원판을 목표 기둥으로 옮긴다.이 과정을 재귀적으로 반복하여 모든 원판을 이동시킨다.코드import ja..
[프로그래머스] 92343 양과 늑대 - JAVA - Lv3
·
알고리즘/문제풀이
[프로그래머스] 92343 양과 늑대 - JAVA - Lv3문제https://school.programmers.co.kr/learn/courses/30/lessons/92343 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제 분석조건2진트리 각 노드의 양이나 늑대가 1마리씩 존재한다.양의 수가 늑대의 수보다 작거나 같으면 양은 잡아먹힌다.루트노드는 양이다.트리를 탐색하며 최대한 많은 양을 모을 때 양의 수를 출력.풀이방법BFS인데 일반적인 BFS가 아니다.방문처리하는 방법이 핵심이라고 생각하는데, 다른 BFS처럼 지금 노드의 번호를 저장하는 것이 아니라 양의 수, 늑대의 수, 방문 가능한 노드들을 ..
[프로그래머스] 43162 네트워크 - JAVA - Lv3
·
알고리즘/문제풀이
[프로그래머스] 43162 네트워크 - JAVA - Lv3문제https://school.programmers.co.kr/learn/courses/30/lessons/43162 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제 분석조건배열로 연결관계가 포함된 컴퓨터가 있다.컴퓨터끼리 직접, 혹은 간접적으로 연결되어 있으면 같은 네트워크라 하는데 전체 네트워크의 수를 구하는 문제풀이방법0번 컴퓨터부터 n-1번 컴퓨터까지 반복문을 돌면서 방문하지 않은 컴퓨터에서 BFS를 돌린다.코드import java.util.*;class Solution { public int solution(int n, int[]..
[프로그래머스] 255900 외톨이 알파벳 - JAVA - PCCP 모의고사
·
알고리즘/문제풀이
[프로그래머스] 255900 외톨이 알파벳 - JAVA - PCCP 모의고사문제https://school.programmers.co.kr/learn/courses/20847/lessons/255900 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제 분석조건같은 알파벳이 여러 번 등장하되, 중간에 다른 문자가 끼어 그룹이 나뉘면 외톨이 알파벳이다.모든 외톨이 알파벳을 찾아 오름차순 정렬 후 문자열로 반환한다.없다면 "N"을 반환한다.풀이방법입력 문자열을 앞에서부터 하나씩 확인하며, 각 알파벳이 처음 등장한 것인지 확인하기 위해 `boolean[] visited` 배열을 사용한다.처음 나온 알파벳이면 `..
[프로그래머스] 43165 타겟 넘버 - JAVA - Lv.2
·
알고리즘/문제풀이
[프로그래머스] 43165 타겟 넘버 - JAVA - Lv.2문제https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제 분석조건자연수 배열이 주어지면 배열의 각 수를 더하거나 빼서 타겟 넘버를 맞추는 문제이다.풀이방법재귀 함수를 사용하는 DFS를 사용하여 문제를 해결한다.코드class Solution { public static int TG; public static int SIZE; public static int answer; public int solution(..