본문 바로가기

컴퓨터150

[PS] 백준 11049 행렬 곱셈 순서/최대한 자세히 설명해보기 - 자바 풀이 행렬 곱셈 순서 행렬 곱셈 순서에 대한 문제이다. 행렬은 곱 연산시 순서에 상관없이 같은 결과값을 보장하나, 곱셈 순서에 따라 곱셈 연산 횟수가 달라지게 된다. 해당 연산을 최소화 했을 때 몇 번인지 구하는 문제이다. 행렬의 곱셈 순서를 정하는 것은 대표적인 DP알고리즘 사용 사례라고 한다. 이 문제를 혼자 풀기에 실패하였기에 풀이를 보고 이해한 바를 정리한다. 접근 과정을 최대한 자세히 기술하였다. 문제 크기가 N×M인 행렬 A와 M×K인 B를 곱할 때 필요한 곱셈 연산의 수는 총 N×M×K번이다. 행렬 N개를 곱하는데 필요한 곱셈 연산의 수는 행렬을 곱하는 순서에 따라 달라지게 된다. 예를 들어, A의 크기가 5×3이고, B의 크기가 3×2, C의 크기가 2×6인 경우에 행렬의 곱 ABC를 구하는 경.. 2023. 12. 13.
[면접 준비] 운영체제 면접 질문과 답 정리 저는 JAVA 백엔드 개발자, 혹은 React 프론트 엔드 개발자를 목표로 하는 취업 준비생입니다. 면접에서 대답할 주요 관심 주제는 Spring, Java, JavaScript, TypeScript, OS, Network, DB, Docker입니다. 제가 사용해본 기술 중 통합, 정리한 면접 관련 내용을 정리합니다. 틀린 내용이 있다면 댓글로 지적해주시길 바랍니다. 감사합니다 ❓ 운영체제의 역할에는 무엇이 있나요? 더보기 운영체제란 컴퓨터 하드웨어와 응용 프로그램 간의 상호작용을 관리하고 제어하는 역할을 하는 소프트웨어이다. 운영체제의 역할 1. 프로세스 및 CPU 스케줄링 관리 2. 메모리 관리 3. 디스크 관리 4. IO 디바이스 관리 ❓ 커널이 무엇인가요? 더보기 메모리에 상주하는 운영체제의 핵심.. 2023. 12. 11.
[OOP] 올바른 DTO 객체를 만들어 보자/+github DTO Data Transfer Objects는 소프트웨어 개발에서 흔한 디자인 패턴이다. dto는 레이어 사이, 혹은 시스템 사이 데어터를 전달할 때 사용된다. 이를테면 Spring의 경우 컨트롤러에서 서비스 레이어로 값을 전달할 때 dto를 사용할 수 있다. 스프링의 레이어 프레젠테이션 계층 클라이언트의 요청 및 응답을 처리한다 @Controller 어노테이션이 사용된 클래스는 스프링 MVC에서 웹 요청을 처리하는 역할을 하게 된다. 비즈니스 계층 어플리케이션의 핵심 비즈니스가 위치하는 곳이다. 트랜잭션, 보안, 데이터 처리 등 주요 비즈니스 로직이 포함된다. 데이터 액세스 계층 데이터베이스와의 상호작용을 담당한다. JDBC나 ORM 기술을 사용하여 DB와 통신한다. DTO DTO를 사용하는 이유? .. 2023. 11. 24.
[OOP] 객체 지향 설계를 잘하는 방법 객체 지향 설계 객체 지향 설계란? 객체 지향 설계(Object-Oriented Design, OOD)는 소프트웨어를 개발할 때 객체 지향 프로그래밍 (OOP) 원칙을 기반으로 하는 설계 접근 방식이다. 이러한 설계는 소프트웨어 시스템을 여러 객체로 나누고, 각 객체가 협력하여 기능을 수행하도록 하는 것을 중요시한다. 이를 위해서는 객체를 큰 관계 속에서 파악하는 것이 필요하다. 객체 지향의 목적은 유지 보수가 가능한 좋은 코드를 작성하는 데에 있다. 객체란? 객체는 현실 세계의 객체의 은유이다. 즉 현실 속 객체처럼 말하고 달리고 밥을 먹는다. 현실의 객체와의 차이점은 객체 지향 세계의 객체들은 모두 능동적이라는 것이다. 현실에서는 펀치를 치면 사람에 의해 샌드백이 터진다. 그러나 객체 지향 세계의 샌.. 2023. 11. 22.