본문 바로가기
728x90

코딩5

[알고리즘] 콜라 문제 오래전 유행했던 콜라 문제가 있습니다. 콜라 문제의 지문은 다음과 같습니다. 정답은 아무에게도 말하지 마세요. 콜라 빈 병 2개를 가져다주면 콜라 1병을 주는 마트가 있다. 빈 병 20개를 가져다주면 몇 병을 받을 수 있는가? 단, 보유 중인 빈 병이 2개 미만이면, 콜라를 받을 수 없다. 문제를 풀던 상빈이는 콜라 문제의 완벽한 해답을 찾았습니다. 상빈이가 푼 방법은 아래 그림과 같습니다. 우선 콜라 빈 병 20병을 가져가서 10병을 받습니다. 받은 10병을 모두 마신 뒤, 가져가서 5병을 받습니다. 5병 중 4병을 모두 마신 뒤 가져가서 2병을 받고, 또 2병을 모두 마신 뒤 가져가서 1병을 받습니다. 받은 1병과 5병을 받았을 때 남은 1병을 모두 마신 뒤 가져가면 1병을 또 받을 수 있습니다. 이.. 2023. 1. 23.
[CleanCode] 객체와 메서드 그리고 클래스 안녕하세요~ 지난 포스팅에서는 클린코드의 개념에 대하여 알아보았죠? 이번 포스팅에서는 객체와 메서드 그리고 클래스를 생성할 때 주의할 점에 대하여 정리해보았습니다. 네이밍부터 클래스 생성 법칙까지 정리하였으니 도움이 되길 바랍니다! 네이밍 의미 있는 이름 변수 및 메서드의 이름은 의미를 담아 짓는다. 접두어 사용 자제 아직까지 멤버 변수 앞에는 m을 붙이는 등 접두어를 사용하는 경우가 종종 있다. 접두어 사용은 옛날 방식의 코딩! 클래스와 메서드 네이밍을 분리한다 클래스 이름은 명사로 , 메서드 이름은 동사로 명명한다. 메서드 작게 만들어라 Spark의 Source Code는 모든 함수가 2-3줄로 이루어져 있다 조건문 내부에 들어가는 함수는 되도록 한 줄로 만들어라 하나의 함수는 한 가지 기능만 한다 .. 2023. 1. 3.
점의 위치 구하기 문제 설명 사분면은 한 평면을 x축과 y축을 기준으로 나눈 네 부분입니다. 사분면은 아래와 같이 1부터 4까지 번호를매깁니다. x 좌표와 y 좌표가 모두 양수이면 제1사분면에 속합니다. x 좌표가 음수, y 좌표가 양수이면 제2사분면에 속합니다. x 좌표와 y 좌표가 모두 음수이면 제3사분면에 속합니다. x 좌표가 양수, y 좌표가 음수이면 제4사분면에 속합니다. x 좌표 (x, y)를 차례대로 담은 정수 배열 dot이 매개변수로 주어집니다. 좌표 dot이 사분면 중 어디에 속하는지 1, 2, 3, 4 중 하나를 return 하도록 solution 함수를 완성해주세요. 제한사항 dot의 길이 = 2 dot[0]은 x좌표를, dot[1]은 y좌표를 나타냅니다 -500 ≤ dot의 원소 ≤ 500 dot의 .. 2022. 12. 16.
List 두개의 중복값 찾기, 그리고 ConcurrentModificationException 최근 TDD 스터디를 시작했습니다. 구현 과제는 로또 프로그램입니다. 해당 과제를 위해 로또 번호를 생성하고 당첨 번호를 입력하여 매칭되는 숫자의 개수를 찾아야하는 로직이 존재했는데요. 기능 구현 중 새로운 Exception을 만나 기록해봅니다. 바로 ConcurrentModificationException 입니다. 구현과 예외 발생 기능 구현을 위하여 리스트 두개의 값을 비교, 중복되는 항목의 개수를 구해야 합니다. for 문을 사용할 수도 있지만 이번 과제에는 indent 가 1을 초과해서는 안된다는 조건이 존재합니다. for 문 내에서 if 문 사용 시 indent == 2 로 조건을 어기게 되는 것이죠. 해서 제가 사용한 방법은 ArrayList.retainAll() 메소드 입니다. retainA.. 2022. 12. 15.
728x90