본문 바로가기

전체 글

(461)
[로또] step1 - 문자열 덧셈 계산기 (15일 차) 문자열 덧셈 계산기를 통한 TDD/리팩토링 실습 기능 요구사항 쉼표(,) 또는 콜론(:)을 구분자로 가지는 문자열을 전달하는 경우 구분자를 기준으로 분리한 각 숫자의 합을 반환 (예: “” => 0, "1,2" => 3, "1,2,3" => 6, “1,2:3” => 6) 앞의 기본 구분자(쉼표, 콜론)외에 커스텀 구분자를 지정할 수 있다. 커스텀 구분자는 문자열 앞부분의 “//”와 “\n” 사이에 위치하는 문자를 커스텀 구분자로 사용한다. 예를 들어 “//;\n1;2;3”과 같이 값을 입력할 경우 커스텀 구분자는 세미콜론(;)이며, 결과 값은 6이 반환되어야 한다. 문자열 계산기에 숫자 이외의 값 또는 음수를 전달하는 경우 RuntimeException 예외를 throw한다. 프로그래밍 요구사항 inde..
Step5 - 자동차 경주(우승자) - 피드백 (15일차) 마지막 피드백이 도착하였다. from. 멘토 코드 컨벤션 생각하며 작성하기 MVC 에 맞게 코드를 구분하기 private, static, final 을 적절하게 사용하기 테스트 코드 작성하기 매직 넘버 추출하기 객체가 사용되는 시점에 검증하기 어레이 보다는 컬렉션을 사용하기 stream 사용해보기 위 사항을 지키면서 코드를 다시 한번 작성해 보았습니다. 너무 고생 많으셨습니다 👍 이 열정 무엇?? 👍 이번에는 자동차 등록하는 부분은 Race 클래스에서 -> CarRacer 부분으로 이동하였습니다. 그렇게 되면 CarRacer의 객체가 생성될 때마다 input에 대하여 검증을 진행하겠지만, 멘토님께서 말씀하신 객체가 사용되는 시점에 검증하기 위해서는 이렇게 진행하는 것이 더 옳다고 판단하였습니다. 멘토님께..
Step5 - 자동차 경주(우승자) (14일차) 1. 코드 컨벤션 생각하며 작성하기 2. MVC 에 맞게 코드를 구분하기 3. private, static, final 을 적절하게 사용하기 4. 테스트 코드 작성하기 5. 매직 넘버 추출하기 6. 객체가 사용되는 시점에 검증하기 7. 어레이 보다는 컬렉션을 사용하기 8. stream 사용해보기 위 사항을 지키면서 코드를 다시 한번 작성해 보았습니다. 이번에는 자동차 등록하는 부분은 Race 클래스에서 -> CarRacer 부분으로 이동하였습니다. 그렇게 되면 CarRacer의 객체가 생성될 때마다 input에 대하여 검증을 진행하겠지만, 멘토님께서 말씀하신 객체가 사용되는 시점에 검증하기 위해서는 이렇게 진행하는 것이 더 옳다고 판단하였습니다. 멘토님께서는 대부분의 코드를 stream으로 작성하셨는데,..
[JAVA] 백준 1062번: 가르침 가르침 시간 제한메모리 제한제출정답맞은 사람정답 비율 1 초 128 MB (하단 참고) 22845 6176 3650 24.903% 문제 남극에 사는 김지민 선생님은 학생들이 되도록이면 많은 단어를 읽을 수 있도록 하려고 한다. 그러나 지구온난화로 인해 얼음이 녹아서 곧 학교가 무너지기 때문에, 김지민은 K개의 글자를 가르칠 시간 밖에 없다. 김지민이 가르치고 난 후에는, 학생들은 그 K개의 글자로만 이루어진 단어만을 읽을 수 있다. 김지민은 어떤 K개의 글자를 가르쳐야 학생들이 읽을 수 있는 단어의 개수가 최대가 되는지 고민에 빠졌다. 남극언어의 모든 단어는 "anta"로 시작되고, "tica"로 끝난다. 남극언어에 단어는 N개 밖에 없다고 가정한다. 학생들이 읽을 수 있는 단어의 최댓값을 구하는 프로그..
[JAVA] 백준 14225번: 부분수열의 합 부분수열의 합 시간 제한메모리 제한제출정답맞은 사람정답 비율 2 초 512 MB 4358 2167 1462 46.149% 문제 수열 S가 주어졌을 때, 수열 S의 부분 수열의 합으로 나올 수 없는 가장 작은 자연수를 구하는 프로그램을 작성하시오. 예를 들어, S = [5, 1, 2]인 경우에 1, 2, 3(=1+2), 5, 6(=1+5), 7(=2+5), 8(=1+2+5)을 만들 수 있다. 하지만, 4는 만들 수 없기 때문에 정답은 4이다. 입력 첫째 줄에 수열 S의 크기 N이 주어진다. (1 ≤ N ≤ 20) 둘째 줄에는 수열 S가 주어진다. S를 이루고있는 수는 100,000보다 작거나 같은 자연수이다. 출력 첫째 줄에 수열 S의 부분 수열의 합으로 나올 수 없는 가장 작은 자연수를 출력한다. 문제 ..
백준 14501번: 퇴사 문제 상담원으로 일하고 있는 백준이는 퇴사를 하려고 한다. 오늘부터 N+1일째 되는 날 퇴사를 하기 위해서, 남은 N일 동안 최대한 많은 상담을 하려고 한다. 백준이는 비서에게 최대한 많은 상담을 잡으라고 부탁을 했고, 비서는 하루에 하나씩 서로 다른 사람의 상담을 잡아놓았다. 각각의 상담은 상담을 완료하는데 걸리는 기간 Ti와 상담을 했을 때 받을 수 있는 금액 Pi로 이루어져 있다. N = 7인 경우에 다음과 같은 상담 일정표를 보자. 1일2일3일4일5일6일7일TiPi 3 5 1 1 2 4 2 10 20 10 20 15 40 200 1일에 잡혀있는 상담은 총 3일이 걸리며, 상담했을 때 받을 수 있는 금액은 10이다. 5일에 잡혀있는 상담은 총 2일이 걸리며, 받을 수 있는 금액은 15이다. 상담을 ..
백준 1987번: 알파벳 dfs import java.util.Arrays; import java.util.HashMap; import java.util.LinkedList; import java.util.Map; import java.util.Queue; import java.util.Scanner; public class baekjoon1987 { static int h; static int w; static char[][] info; static HashMap visit = new HashMap(); static int[] aryY = { 0, 0, -1, 1 }; static int[] aryX = { -1, 1, 0, 0 }; static int res = 0; public static void main(String[]..
01_객체 설계 영화관을 살펴보자 영화관에는 관객(Audience), 티켓 판매원(TicketSeller), 티켓 판매소(TicketOffice)가 존재한다. 관객은 가방을 가지고 있고, 가방에는 돈(amount), 티켓(ticket), 초대권(Invitation)이 존재한다. 티켓 판매소에는 티켓(ticket)과 돈(amount)가 존재한다. 우리는 아래와 같은 동작을 진행하는 프로그램을 만들어 볼 것이다. 1. 추첨을 통해 선정된 관람객에게 공연을 무료로 관람할 수 있는 초대장을 발송 - 초대장에는 날짜가 적혀있다. 2. 이벤트에 당첨된 관람객은 초대장을 티켓으로 교환한 후에 입장. - 관람객은 티켓을 얻는다. 3. 이벤트에 당첨되지 않은 관람객은 티켓을 구매해야만 입장 가능. - 관람객의 돈은 줄어든다. - 관람객..