GitHub 자세히보기

알고리즘 14

[프로그래머스] 삼각달팽이 for JAVA

문제설명 정수 n이 매개변수로 주어집니다. 다음 그림과 같이 밑변의 길이와 높이가 n인 삼각형에서 맨 위 꼭짓점부터 반시계 방향으로 달팽이 채우기를 진행한 후, 첫 행부터 마지막 행까지 모두 순서대로 합친 새로운 배열을 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 1,000 이하입니다. 문제풀이 class Solution { public int[] solution(int n) { int[][] arr = new int[n][n]; int num = 1; // 배열에 들어갈 값 int max = n * (n + 1) / 2; // 최대값 int row = 0; // 행 int col = 0; // 열 arr[0][0] = 1; while (num < max) { // 왼..

[백준] 2447번 별찍기10 for JAVA

문제설명 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 하나씩 있는 패턴이다. *** * * *** N이 3보다 클 경우, 크기 N의 패턴은 공백으로 채워진 가운데의 (N/3)×(N/3) 정사각형을 크기 N/3의 패턴으로 둘러싼 형태이다. 예를 들어 크기 27의 패턴은 예제 출력 1과 같다. 제한사항 입력 첫째 줄에 N이 주어진다. N은 3의 거듭제곱이다. 즉 어떤 정수 k에 대해 N=3k이며, 이때 1 ≤ k < 8이다. 출력 첫째 줄부터 N번째 줄까지 별을 출력한다. 문제풀이 재귀함수 활용 import java.io.BufferedWr..

Algorithm/BOJ 2022.01.01

[알고리즘 이론] 재귀함수

재귀란? 주어진 문제의 해를 구하기 위해 동일하면서 더 작은 문제의 해를 이용하는 방법 재귀함수 함수 내부에서 직간접으로 자기 자신을 호출하는 함수 '기본 부분(기저조건)+ 유도 부분(실행부분)' 로 구성 함수호출은 프로그램 메모리 구조에서 스택 사용 → 메모리 및 속도에서 성능저하 발생 재귀함수는 반복구조보다 간결하고 이해하기 쉽다. 예시(팩토리얼) 1. 재귀적 표현 기본부분(기저조건) N=1일 때, n ! = n x (n-1)! 2. 재귀함수 코드 int factorial(int n) { if(n

Algorithm/이론 2022.01.01

[프로그래머스] 두 개 뽑아서 더하기

문제설명 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한사항 numbers의 길이는 2 이상 100 이하입니다. numbers의 모든 수는 0 이상 100 이하입니다. 문제풀이 1. ArrayList 활용 import java.util.ArrayList; import java.util.Arrays; class Solution { public int[] solution(int[] numbers) { ArrayList list = new ArrayList(); int size = numbers.length; for(int i=0;i

1 2 3