728x90 java22 [알고리즘] 콜라 문제 오래전 유행했던 콜라 문제가 있습니다. 콜라 문제의 지문은 다음과 같습니다. 정답은 아무에게도 말하지 마세요. 콜라 빈 병 2개를 가져다주면 콜라 1병을 주는 마트가 있다. 빈 병 20개를 가져다주면 몇 병을 받을 수 있는가? 단, 보유 중인 빈 병이 2개 미만이면, 콜라를 받을 수 없다. 문제를 풀던 상빈이는 콜라 문제의 완벽한 해답을 찾았습니다. 상빈이가 푼 방법은 아래 그림과 같습니다. 우선 콜라 빈 병 20병을 가져가서 10병을 받습니다. 받은 10병을 모두 마신 뒤, 가져가서 5병을 받습니다. 5병 중 4병을 모두 마신 뒤 가져가서 2병을 받고, 또 2병을 모두 마신 뒤 가져가서 1병을 받습니다. 받은 1병과 5병을 받았을 때 남은 1병을 모두 마신 뒤 가져가면 1병을 또 받을 수 있습니다. 이.. 2023. 1. 23. [CleanCode] 시스템 안녕하세요. 오늘은 클린코드 시스템 편으로 돌아왔습니다. 깨끗한 시스템을 만들기 위한 방법에 대하여 정리해 보았는데요. 모쪼록 여러분께 도움이 되길 바랍니다~ 클린 시스템이란? 소프트웨어를 구성할 때 소프트웨어 팀도 도시처럼 구성한다. 도시는 혼자서 관리할 수 없다. 도시에는 교통관리팀, 치안관리팀, 건축물관리팀 등이 존재하는 것처럼 시스템도 적절한 추상화와 모듈화가 필요하다. 깨끗한 코드 구현시 낮은 추상화 수준에서 관심사를 분리하기 쉬워진다. 시스템 항목에서는 높은 추상화 수준, 즉 시스템 수준에서도 깨끗함을 유지하는 방법을 살펴본다 시스템 제작과 시스템 사용 분리 제작(construction)은 사용 (use)와 아주 다르다는 것을 명심하자. 소프트웨어 시스템은 준비과정(애플리케이션 객체 제작 및 .. 2023. 1. 13. [Java] Java Memory Leak 안녕하세요. 오늘은 자바의 메모리 누수에 대하여 알아보겠습니다. 자바 개발 시에는 메모리를 고려하지 않아도 된다고 생각하실 수 있습니다. 하지만 자칫하면 메모리 누수가 일어날 수도 있는데요. 메모리 누수의 개념과 발생 원인에 대하여 정리해 보았습니다. 메모리 누수란? 일반적 의미의 메모리 누수는 프로그램이 필요하지 않은 메모리를 계속 점유하고 있는 현상입니다. 할당된 메모리의 사용을 마친 불필요한 메모리를 반환하지 않는 것이 반복된다면 메모리가 낭비되겠죠? Java의 메모리 관리 자바는 개발자가 메모리 할당과 해제를 명시적으로 수행하지 않습니다. 해서 GC의 개념이 존재하는데요. GC는 Mark and Sweep이라는 알고리즘을 이용해 가비지 컬렉션을 수행합니다. Mark는 모든 변수를 스캔하며 각각 어.. 2023. 1. 11. [Java] Primitive Type & Reference Type 안녕하세요. 씨위드입니다. 오늘은 자바의 데이터 타입에 대하여 포스팅해보려고 합니다. Java의 데이터 타입은 크게 기본타입(Primitive Type)과 참조타입(Reference Type)으로 나눌 수 있습니다. 각각의 특징과 차이점에 대하여 알아보겠습니다. Primitive Type 기본 타입은 실제 데이터 값을 저장하는 타입입니다. 다른 이름으로는 원시타입이라고도 부르는데요. 정수, 실수, 문자, 논리, 리터럴을 저장하며 기본타입의 자료형은 아래와 같이 나눌 수 있습니다. 문자 char 정수 byte, int, short, long 실수 float, double 논리 boolean 리터럴 데이터 그 자체의 값 즉 소스 코드 내에 직접 입력된 데이터를 의미 직접 데이터 값을 저장하기 때문에 변수마다.. 2023. 1. 9. 이전 1 2 3 4 5 6 다음 728x90