재귀함수 공부하기.. (feat. 미로찾기)
재귀함수를 공부하는데 유튜브의 권오흠교수님의 강의를 보면서 공부를 했다. 재귀함수를 만들려면 노하우가 암시적 매개변수를 명시적 매개변수로 바꾸라! 라고 하셨다. 이번 미로 찾기 문제는 미로가 주어지고 거기까지의 경로를 구하는 문제였는데, 힌트 한번보고 재밌게 풀었다.. import java.util.Stack; public class Test { public static final int[][] dir = {{1, 0}, {-1, 0}, {0, 1}, {0, -1}}; public static void main(String[] args) { boolean[][] board = {{true,true,true,true,true,true,true,false},{true,false,false,true,false..
2022. 4. 12.
MxN 행렬 데이터의 특정 원소의 행,열 모두를 변경하기
정수로 이루어진 M x N 행렬 데이터가 있다고 하자 행렬의 원소 중에 0이 있을 경우 해당 원소가 위치하는 행,열 전체 데이터를 0으로 변경하는 코드를 작성하라. 제로베이스 문제 풀이에서는 다르게 풀었지만 boolean써가면서 푸는게 이해가 잘 안되서 그냥 내 식대로 풀어봤다. import java.util.*; import java.util.stream.IntStream; class Main { public static void main(String[] args) { int[][] matrix = {{1, 1, 1}, {1, 0, 1}, {1, 1, 1}}; solution(matrix); System.out.println(); matrix = new int[][]{{1,1,0},{1,1,1},{0,..
2022. 4. 6.
파스칼의 삼각형
파스칼의 삼각형은 다음과 같이 만들 수 있다. 1. 첫 번째 줄에는 숫자 1을 쓴다. 2. 그 다음 줄은 바로 위의 왼쪽 숫자와 오른쪽 숫자를 더한다. 입력 출력 1 [[1]] 3 [[1], [1, 1], [1, 2, 1]] 5 [[1], [1, 1], [1, 2, 1], [1, 3, 3, 1], [1, 4, 6, 4, 1]] 처음으로 완벽하게 풀어서 올려봅니다.. 흑흑 import java.util.ArrayList; public class Practice1 { public static ArrayList solution(int numRows) { ArrayList outer = new ArrayList(); // 파스칼 삼각형 전체 for (int i = 0; i < numRows; i++) { // ..
2022. 4. 1.
자바 기초 문제 - 사탕 나눠 주기
문제 N 명의 아이들이 한 줄로 서있다. 각각의 아이들은 점수 표를 가지고 있는데 점수 표에 따라 다음과 같은 규칙으로 사탕을 나누어 줘야 한다. 적어도 1개 이상의 사탕을 나누어줘야 한다. 점수가 높은 아이에게는 바로 옆의 아이 보다는 사탕을 많이 줘야 한다. N 명의 아이들에 대한 점수 표가 ratings 배열에 주어질 때, 나누어 줘야하는 최소한의 사탕 개수를 출력하세요. 입출력 예시 입력 출력 1 2 3 6 3 2 1 6 1 0 2 5 1 2 2 4 1, 3, 5, 3, 1, 3, 5, 7, 5, 3, 1, 0 무조건 한개 이상씩 들고있어야하니 기본적으로 하나씩 아이들에게 쥐어 준 후, 이전 아이와 비교해주고 이전 아이의 사탕 개수에 변동이 생기니 이전아이보다 더 이전에 있던 아이와도 다시 비교 ..
2022. 3. 30.