전체 글

1. 행렬의 덧셈과 뺄셈각 행렬에서 같은 위치에 있는 값끼리 더하거나 빼는 연산이다.이때 두 행렬의 크기는 같아야 한다. 행렬의 덧셈과 뺄셈을 자바로 구현하면 다음과 같다.// 행렬의 덧셈public static void matrixSum(int[][] arr1, int[][] arr2) { if(arr1.length != arr2.length || arr1[0].length != arr2[0].length){ System.out.println("두 행렬의 크기가 같지 않습니다."); return; } int[][] result = new int[arr1.length][arr1[0].length]; for(int i = 0; i 시간복잡도O(N^2)  2. ..
1. 문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 2. 풀이 과정특정 전화번호가 다른 전화번호의 접두어가 되는지를 체크하면 되는 문제이다. 이 문제를 가장 쉽게 해결하는 방법은 하나씩 비교하는 것이다.phone_book[i]와 i가 아닌 다른 전화번호를 하나씩 비교하며 접두어가 되는지 체크하면 된다. 하지만 이 문제의 함정은 입력 크기이다.최대 100만인데 이러면 해당 방법의 시간복잡도인 O(N^2)으로는 풀기 힘들다.따라서 더 효율적인 방법을 생각해봐야 한다. 어떻게 하면 더 효율적으로 해결할 수 있을까? 바로 정렬을 활용하는 것이다.배열을 오름차순..
· Java
HashSet의 특징HashSet은 중복을 빠르게 체크할 수 있는 자료구조이다.기존의 List에서 중복여부를 체크하려면 List의 모든 요소를 순회하며 해당 값이 있는지 체크(O(n))해야 했지만HashSet은 그러한 과정을 O(1)로 해결한다. 하지만 HashSet의 타입이 Integer나 String이 아닌 사용자가 정의한 객체라면 어떻게 될까?이때는 중복을 속성의 값으로 체크하는 것이 아닌 객체의 참조값으로 체크를 한다.속성의 값으로 중복을 체크하고 싶다면 어떻게 해야할까? 객체의 속성으로 중복 체크해당 클래스에서 equals()메서드와 hashCode()메서드를 오버라이드 해주면 된다.public class Person { private String name; private int ag..
1. 문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 2. 풀이 과정이 문제는 모든 칸을 방문하기 위해서 필요한 사다리 설치 비용의 최솟값을 구하는 문제이다.  이 문제에서 주의해야할 점은 현재 위치에서 인접한 위치로 당장 방문할 수 없다고 해서 그 위치를 방문할 수 없는 것이 아니다.예를 들어 위의 케이스에서 최대 높이 차가 3이라고 할 때,  (0, 2)에서 (1, 3)으로는 바로 갈 수가 없다.그렇다고 해서 (1, 3)을 방문하지 못한다고 판단해 바로 사다리를 설치하면 안된다.(0, 1) -> (1, 1) -> (1, 2) -> (0, 2)로 이동한..
jaehee1113
나의 개발 발자취