java 39

[Algorithm] Applying Sliding Window pattern

Quiz Link: 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr /* * Objective: * Count substrings of t (with the same length as p) whose numeric value is * less than or equal to p's numeric value. * * Strategy: * Parse both strings as long rather than BigInteger. * * Rationale: * The problem guarantees p's length is at most 18 digits. * Since long ..

Algorithm 2026.02.20

Troubleshooting: 로그인 성공 후 페이지 튕김 및 API 응답 검증 오류 해결

관련 커밋 링크 : https://github.com/Sungkyunkwan-2/payment-system-project/commit/074d6bb721703b907ee50836fd610df82f490f63 fix: FE successfully recognizes profile dto · Sungkyunkwan-2/payment-system-project@074d6bb+ public ProfileResponse(String email, String customerUid, String name, String phone, double pointBalance) {github.com 1. 문제 현상 사용자가 로그인을 성공하여 쿠키가 정상 생성됨에도 불구하고, 즉시 로그인 페이지로 리다이렉트되는 현상 발생.개발자..

[알고리즘] 문자열 다루기 기본 - 문자열의 길이와 구성 검증하기

문제 요구사항문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.제한 사항s는 길이 1 이상, 길이 8 이하인 문자열입니다.s는 영문 알파벳 대소문자 또는 0부터 9까지 숫자로 이루어져 있습니다.풀이class Solution { public boolean solution(String s) { boolean answer = false; //길이가 4 또는 6인지 if(s.length()==4 || s.length()==6){ //모든 자리가 숫자인지 for(int i = 0;..

Algorithm 2026.02.02

[알고리즘] 부족한 금액 계산하기

문제 요구사항새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이용료가 100이었다면 2번째에는 200, 3번째에는 300으로 요금이 인상됩니다.놀이기구를 count번 타게 되면 현재 자신이 가지고 있는 금액에서 얼마가 모자라는지를 return 하도록 solution 함수를 완성하세요.단, 금액이 부족하지 않으면 0을 return 하세요.제한사항놀이기구의 이용료 price : 1 ≤ price ≤ 2,500, price는 자연수처음 가지고 있던 금액 money : 1 ≤ money ≤ 1,000,000,000, money는 자연수놀이기구의 이용 횟수 count ..

Algorithm 2026.02.02

[알고리즘] 문자열 내림차순으로 배치하기

문제 요구사항문제 설명문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요.s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다. 제한 사항str은 길이 1 이상인 문자열입니다.풀이import java.util.*;class Solution { public String solution(String s) { String answer = ""; //문자열을 리스트로 변환 String[] strArr = s.split(""); ArrayList list = new ArrayList(Arrays.asList(strArr)); //리스트를 정렬 ..

Algorithm 2026.01.29

Iterator 활용하기 - Iterable이 아닌 경우

Iterator를 아래와 같이 사용하는 것을 보고, HashMap에도 적용할 수 있을 것이라 생각하여 다음과 같이 구현하였다. 1. iterator 사용 예제import java.util.ArrayList;import java.util.Iterator;public class Main { public static void main(String[] args) { // Create an ArrayList of Strings ArrayList cars = new ArrayList(); cars.add("Volvo"); cars.add("BMW"); cars.add("Ford"); cars.add("Mazda"); // Get an iterator for the ArrayL..

[Java] 이커머스 프로그램 개발일지

12.18 : 필수과제 마무리, 데이터를 외부에서 가져오는 방식으로 바꾸기 위해 develop 브랜치 새로 생성 변경 전: Main에서 CommerceSystem 객체 생성 및 start() 메서드만 실행. 카테고리, 상품 객체 생성 및 할당은 모두 CommerceSystem 생성자에 맡김. CommerceSystem 객체는 3개의 Category 타입 멤버 변수를 가지며, 1개의 Customer타입 멤버 변수를 가짐 문제1. 강한 결합(Tight Coupling) 문제- Product 생성자 시그니처가 바뀌거나, 초기 상품 데이터를 바꾸고 싶을 때, CommerceSystem 클래스 자체를 수정해야 한다.2. 테스트 어려움- 생성자 외부에서 테스트용 Mock-Up 데이터를 만들어 넣을 수가 없음3. 유..

[프로젝트 리뷰] 계산기 만들기 과제

Github 링크 GitHub - ginsengcandy/sparta-project-calculator: For the submission of calculator project to spartacampFor the submission of calculator project to spartacamp - ginsengcandy/sparta-project-calculatorgithub.com Troubleshooting 링크 [Java] 특정 문자열을 입력해야만 무한루프를 종료하는 기능 구현 (Con'd)요약scanner.nextLine()은 버퍼에 남아 있는 개행문자를 모두 읽어옴으로써 버퍼를 비워주는 역할을 수행하므로, 직접적으로 값을 받을 목적이 아니더라도 버퍼를 비우는 목적으로 활용할 수 있다.mon..

[Java] 클래스 간 통제 관계

Java에서 다른 클래스를 효과적으로 관리하는 방법Java 애플리케이션을 개발하다 보면 여러 객체를 체계적으로 관리해야 하는 상황이 자주 발생한다. 학생 정보를 관리하는 시스템, 게임의 플레이어를 관리하는 매니저, 데이터베이스 연결을 관리하는 풀 등이 대표적인 예다. 이번 글에서는 Java에서 다른 클래스를 관리하는 클래스를 효과적으로 구현하는 방법을 알아보겠다.기본 접근: 컬렉션 활용가장 기본적인 방법은 List나 Set 같은 컬렉션을 사용하는 것이다. ArrayList를 내부 필드로 두고, 추가, 삭제, 조회 메서드를 제공하는 매니저 클래스를 만들면 된다. 이 방식은 구현이 간단하고 직관적이지만, 특정 객체를 찾을 때 선형 탐색이 필요하다는 단점이 있다. public class StudentManag..