본문 바로가기

java49

연속된 부분 수열의 합 (투 포인터) 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/178870 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr더보기 시도 했던 방법 처음엔 단순하게 배열로 풀었는데, 몇몇 테스트 케이스에서 시간초과가 떴다. 최악의 경우, (1000000)^2의 순회를 하기 때문이다.정렬된 배열이 주어지므로 바이너리 서치 트리로 해결해보려고 이런 저런 시도를 해보다가 결국 시간 내에 시간초과를 해결하지 못 했는데, 힌트를 보고 투포인터로 해결해보았다. 작성한 코드 1 (완전 탐색) (시간 초과)class Solution { public int[] solution.. 2026. 7. 1.
큰 수 만들기 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/42883 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 더보기 문제 풀이 왼 쪽부터 오른 쪽 숫자들과 비교하면서 작은 수를 지워가면서 가장 큰 수를 만들어주면 된다. 사실 Stack을 생각 못 하고, 더 어렵고 지져분하게 코드를 하다가 힌트를 보고 stack으로 구현했다. 작성한 코드 (정답)import java.util.*;class Solution { public String solution(String number, int k) { String[] numberStr.. 2026. 6. 30.
삼각 달팽이 (델타 배열) 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/68645 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr더보기 문제 풀이10002900310804567 ( 예시) n=4인 경우 )예시와 같이, 코딩에 맞게 삼각형의 구조를 바꾸고 [2차원 배열] + [델타 배열]로 구현하면 됨 작성한 코드 (정답)class Solution { public int[] solution(int n) { int blockSize = n*(n+1)/2; int[] answerArray = new int.. 2026. 6. 23.
커머스 프로그램 만들면서 적용해본 객체 활용법 간단한 커머스 프로그램을 만들면서 최근 공부한 다양한 객체 활용법들을 적용해보았다. https://github.com/wjdals0508/commerceProject GitHub - wjdals0508/commerceProject: 내일배움캠프 커머스 과제내일배움캠프 커머스 과제 . Contribute to wjdals0508/commerceProject development by creating an account on GitHub.github.com 정적 팩토리 메서드 (싱글톤 패턴)public class CustomerManager { //// 싱글톤 //// private static CustomerManager instance; private CustomerManager() .. 2026. 6. 20.
정적 팩토리 메서드 생성자 대신 정적 팩토리 메서드를 고려하라! 정적 팩토리 메서드란?객체의 생성을 담당하는 클래스 메서드 정적 팩토리 메서드의 특징1. 생성 목적에 대한 이름 표현 가능public final class Money { private final long amount; private Money(long amount) { this.amount = amount; } public long amount() { return amount; } public static Money of(long amount) { return new Money(amount); } // 정적 팩토리 메서드 public static Money won(long amount) { retur.. 2026. 6. 15.
상속(Inheritance) VS 합성(Composition) 조심스럽게 상속을 쓰고 우선 합성을 고려하라. 게임 속 전사 캐릭터가 있다고 가정하자, 이 캐릭터는 무기로 검, 도끼, 메이스를 쓸 수 있고 플레이 도중 변경 할 수 있다.이를 코드로 구현하려면 어떻게 해야 할까? 상속으로 해볼까?public class Warrior implements Character ( /* 전사 공통 */)public class SwordWarrior extends Warrior { ... }public class AxWarrior extends Warrior { ... }public class MaceWarrior extends Warrior { ... } 문제 1. 정체성이 끊긴다. 자바는 객체의 클래스를 런타임에 바꿀 수 없다. 무기를 도끼로 바꾸려면 new AxWarr.. 2026. 6. 15.