분류 전체보기49 [BOJ]4358 생태학 이 문제를 보고 Collection Framework을 사용하기 좋은 문제라고 생각했다. 중복 -> Set, 고유 이름과 값 -> Map, 지저분한 text문 -> List가 떠올랐기 때문이다. 계획은 일단 List로 값을 받는다 그 다음 Set으로 중복을 없애고 정렬하여 List로 바꾼다. 이로써 두 List를 서로 비교할 수 있는 것이다. Map에서 중복이 있는(수가 많은) List만큼을 돌면서 .containsKey Map의 이 메소드를 활용하여 평균을 구한다. Set으로 중복을 없애고 정렬한 List인 sortedList만큼 순회하여 map의 값을 뽑아낸다. 여기서 나는 map만큼 순회해도 된다생각했지만 for each문에서는 힘듦을 깨닫고 이렇게 하였다(map은 한층 벗겨내기가 이것보다 까다롭다.. 2023. 6. 9. [알고리즘 문제해결 전략] 재귀함수 재귀 함수를 만들 key point를 `알고리즘 문제해결 전략`을 보고 정리해보려고 한다. 원자성 : 더이상 쪼개지지 않는 성질 재귀함수에서는 원자성을 갖는 작업들을 가리켜 기저사례(base case)라고 한다. 1부터 n까지의 합을 계산하는 반복 함수를 생각해보자 더보기 n*(n-1)*(n-2)*...*1 이 식은 n개의 숫자들로 이뤄져있다. 여기서 원자성은 무엇일까? 1이다. n=1인 case와 그 외 case로 나눠서 코드로 생각해보면 일단 n != 1부터 int recursiveSum(int n) { return n + recursiveSum(n-1); } 이것을 생각할 수 있다. n=1일때 이 식을 사용하면 갯수는 양수이어야 하므로 문제가 생긴다. 그래서 base case를 나눠 다시 코드를 생.. 2023. 6. 9. [Programmers] 카펫 class Solution { public int[] solution(int brown, int yellow) { int[] answer = new int[2]; int sum = brown + yellow; for (int height = 3; height 2023. 6. 7. [BOJ]14889 스타트와 링크 풀지는 못했지만 그 동안의 한 것들을 적어 보았다.. ㄱㅡ import java.util.Scanner; public class Main { // 빈 배열 선언 private int[][] array; // 팀 만들기 public void makeTeam(int n) { // array 초기화 this.array = new int[n][n]; for (int i = 0; i 20 || n%2 == 1) break; if(i == j) { array[i][j] = 0; System.out.printf("%d ", array[i][j]); } else { // 1부터 100까지의 수 array[i][j] .. 2023. 6. 3. 이전 1 ··· 9 10 11 12 13 다음