[코딩테스트] programmers - 네트워크 (알고리즘 고득점 kit) [JAVA]
·
코딩테스트
문제링크https://school.programmers.co.kr/learn/courses/30/lessons/43162 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제설명네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있을 때 컴퓨터 A와 컴퓨터 C도 간접적으로 연결되어 정보를 교환할 수 있습니다. 따라서 컴퓨터 A, B, C는 모두 같은 네트워크 상에 있다고 할 수 있습니다. 컴퓨터의 개수 n, 연결에 대한 정보가 담긴 2차원 배열 computers가 매개변수..
[코딩테스트] programmers - 타겟넘버 (알고리즘 고득점 kit) [JAVA]
·
코딩테스트
문제링크https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제설명n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다.  사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target이 매개변수로 주어질 때 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 return 하도록 solution 함수를 작성해주세요.제한..
[JAVA] 전략 패턴(Strategy Pattern)
·
JAVA
전략 패턴(Strategy Pattern)으로 동작 방식을 유연하게 변경하기소프트웨어 설계에서 전략 패턴(Strategy Pattern)은 매우 중요한 역할을 합니다. 프로그램의 동작 방식이 여러 가지가 있을 때, 이를 유연하게 관리하고 변경할 수 있게 해주는 디자인 패턴입니다. 이번 포스팅에서는 전략 패턴의 개념과 사용 목적을 설명하고, 실제 예제를 통해 어떻게 전략 패턴을 적용할 수 있는지 살펴보겠습니다.1. 전략 패턴이란?전략 패턴은 동작 방식을 캡슐화하여, 동적으로 전략을 변경할 수 있도록 하는 디자인 패턴입니다. 이 패턴은 어떤 기능을 수행할 여러 방법이 있을 때, 그 방법들을 전략(Strategy) 클래스에 정의하고, 클라이언트 코드에서는 실행 시점에 적절한 전략을 선택하여 사용할 수 있게 해..
[CS지식] SOLID 원칙
·
CS지식
로버트 C. 마틴(Robert C. Martin), 흔히 "아저씨 보브(Uncle Bob)"로 알려진 소프트웨어 엔지니어가 발표한 객체 지향 프로그래밍 설계 원칙입니다. 즉, SOLID 원칙이란 객체지향 설계의 5가지 중요한 원칙을 뜻하며, 유지보수성과 확장성을 높이기 위해 설계 과정에서 따르는 지침입니다. 소프트웨어 설계에서 중요한 원칙 중 하나는 SOLID 원칙입니다. SOLID는 객체 지향 프로그래밍(OOP)에서 코드의 품질을 높이고 시스템을 더 유연하고 확장 가능하게 만드는 5가지 핵심 원칙을 의미합니다. 각 원칙은 소프트웨어 개발에서 문제를 예방하고 효율적인 구조를 만들기 위한 중요한 지침이 됩니다. 이번 포스팅에서는 SOLID 원칙을 하나씩 살펴보고 이를 적용한 예제 코드도 함께 살펴보겠습니다..
[JAVA] 싱글톤 패턴(Singleton Pattern)
·
JAVA
싱글톤 패턴(Singleton Pattern)이란?**싱글톤 패턴(Singleton Pattern)**은 하나의 클래스에서 단 하나의 객체만 생성되도록 보장하는 디자인 패턴입니다.이 패턴은 애플리케이션 전역에서 공유되는 객체를 사용할 때 유용하며, 전역 상태를 관리하거나 공유 리소스를 다룰 때 주로 사용됩니다.싱글톤 패턴이 필요한 이유전역 상태 관리하나의 인스턴스를 모든 코드에서 공유함으로써 데이터 일관성을 유지합니다.예: 애플리케이션의 설정 정보 관리, 로그 기록 객체 등.메모리 절약동일한 객체를 여러 번 생성하는 대신 하나의 객체를 공유하여 메모리 사용량을 줄입니다.객체 생성을 제어불필요한 객체 생성을 방지하고, 오직 하나의 객체만 존재하도록 제어합니다.싱글톤 패턴의 구현 방법1. 기본 구현 단계정적..
[JAVA] 콜백 메서드란?
·
JAVA
콜백 메서드(Callback Method)란?콜백 메서드는 특정 조건이 충족되었을 때 또는 특정 이벤트가 발생했을 때 자동으로 호출되는 메서드를 의미합니다.주로 비동기 작업이나 이벤트 기반 시스템에서 사용되며, 작업 효율성과 유연성을 높이는 데 도움을 줍니다.콜백 메서드의 동작 방식메서드는 호출자(Caller)와 피호출자(Callee)로 나눌 수 있습니다.호출자(Caller)특정 조건이나 작업이 완료되었을 때 실행될 동작(콜백)을 정의합니다.이 동작을 인터페이스로 구현하여 피호출자에게 전달합니다.피호출자(Callee)작업이 진행되는 동안 특정 조건을 감시하거나 이벤트를 처리합니다.조건이 충족되면 전달받은 콜백 메서드를 실행합니다.콜백 메서드를 활용하면 호출자가 주기적으로 조건을 확인하지 않아도 되므로 작..
[JAVA] 디자인 패턴(Design Pattern)
·
JAVA
디자인 패턴(Design Pattern)이란?디자인 패턴은 소프트웨어 개발 과정에서 반복적으로 발생하는 문제를 해결하기 위한 **검증된 모범 사례(Best Practice)**를 의미합니다. 이는 실제 현업에서 프로그래밍 문제를 다루는 과정에서 많은 개발자들이 고민하고 정리한 해결 방안의 집합입니다.디자인 패턴은 **객체 지향의 4대 특성(캡슐화, 상속, 추상화, 다형성)**과 **설계 원칙(SOLID)**을 기반으로 구현됩니다.디자인 패턴의 장점재사용성반복적인 문제를 해결하기 위한 일반적인 방법을 제공하여, 동일한 문제 상황에서 효율적으로 코드를 작성할 수 있습니다.가독성코드 구조가 명확해지고 일관된 규칙에 따라 작성되므로, 다른 개발자도 쉽게 이해하고 유지보수할 수 있습니다.유지보수성코드의 모듈화를 ..
[코딩테스트] 백준 1978 - 소수 찾기 [JAVA]
·
코딩테스트
문제 링크https://www.acmicpc.net/problem/1978  문제 설명주어진 수 N개 중에서 소수가 몇 개인지 찾는 프로그램을 작성하는 문제입니다. 입력첫 번째 줄에 자연수 N이 주어집니다. (1 ≤ N ≤ 100)두 번째 줄에 N개의 자연수가 공백으로 구분되어 주어집니다. (1 ≤ 각 수 ≤ 1,000)출력주어진 수들 중 소수의 개수를 출력합니다.예제 입력과 출력예제 입력 예제 출력 풀이입력된 수 중에서 1은 소수가 아니며, 3, 5, 7은 소수이므로 총 3개의 소수가 있습니다.소수 판별 알고리즘소수란 1과 자기 자신만으로 나누어떨어지는 수를 말합니다.소수 판별을 위해 효율적인 방법으로 제곱근을 활용했습니다.어떤 수 n의 약수는 √n 이하에서만 확인하면 충분합니다.즉, 2부터 √n까지의..