전체 글 (461) 썸네일형 리스트형 [로또] step3 - 로또(2등) - 26일차 프로젝트를 구현하는데 초점을 맞춰서 빨리빨리 PR을 요청하는 것 보다는 템포를 조절하면서 생각하는 것도 중요하다 판단하였다. 며칠동안은 여유롭게 즐기며 로또(2등) 프로젝트를 어떻게 만들지 생각해 보았다. 로또를 구매하고 결과를 맞춰보는 일련의 과정을 생각하면서 도메인을 좀 더 다양하게 구성해보았다. 일단 로또를 구매하는 고객이 존재한다. 이 고객은 (Customer) 로또 판매점에 있는 로또 기계에서(LottoMachine) 로또를 돈주고 구매할 것이며 로또 기계는 무작위 번호를 추출하여 로또를 발행하여 고객에게 준다. 발행한 로또를 보며 고객은 결과를 비교할 것이다. 위의 과정을 생각하며 코드를 작성해보았다. 코드 구조는 아래와 같다. ' 구조를 다시 살펴보니 당첨 번호, 보너스 볼을 검증하는 부분이.. [JAVA] 백준 1874번: 스택 수열 (기초 1-4) 문제 스택 (stack)은 기본적인 자료구조 중 하나로, 컴퓨터 프로그램을 작성할 때 자주 이용되는 개념이다. 스택은 자료를 넣는 (push) 입구와 자료를 뽑는 (pop) 입구가 같아 제일 나중에 들어간 자료가 제일 먼저 나오는 (LIFO, Last in First out) 특성을 가지고 있다. 1부터 n까지의 수를 스택에 넣었다가 뽑아 늘어놓음으로써, 하나의 수열을 만들 수 있다. 이때, 스택에 push하는 순서는 반드시 오름차순을 지키도록 한다고 하자. 임의의 수열이 주어졌을 때 스택을 이용해 그 수열을 만들 수 있는지 없는지, 있다면 어떤 순서로 push와 pop 연산을 수행해야 하는지를 알아낼 수 있다. 이를 계산하는 프로그램을 작성하라. 입력 첫 줄에 n (1 ≤ n ≤ 100,000)이 주어.. [JAVA] 백준 9012번: 괄호 (기초 1-3) 문제 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 부른다. 한 쌍의 괄호 기호로 된 “( )” 문자열은 기본 VPS 이라고 부른다. 만일 x 가 VPS 라면 이것을 하나의 괄호에 넣은 새로운 문자열 “(x)”도 VPS 가 된다. 그리고 두 VPS x 와 y를 접합(concatenation)시킨 새로운 문자열 xy도 VPS 가 된다. 예를 들어 “(())()”와 “((()))” 는 VPS 이지만 “(()(”, “(())()))” , 그리고 “(()” 는 모두 VPS 가 아닌 문자열이다. 여러분은 입력으로 주어진 괄호 문자열.. [JAVA] 백준 9093번: 단어 뒤집기 (기초 1-2) 문제 문장이 주어졌을 때, 단어를 모두 뒤집어서 출력하는 프로그램을 작성하시오. 단, 단어의 순서는 바꿀 수 없다. 단어는 영어 알파벳으로만 이루어져 있다. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는 공백이 하나 있다. 출력 각 테스트 케이스에 대해서, 입력으로 주어진 문장의 단어를 모두 뒤집어 출력한다. 문제 풀이 이번 문제도 어렵지 않다. nextline으로 문자열을 읽고 ("abcd efg hij") split을 이용하여 공백 단위로 문자열을 나눈 다음 ("abcd", "efg", "hij") 공백 단위로 나눈 String array에 있.. [JAVA] 백준 10828번: 스택 (기초1-1) 문제 정수를 저장하는 스택을 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오. 명령은 총 다섯 가지이다. push X: 정수 X를 스택에 넣는 연산이다. pop: 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다. size: 스택에 들어있는 정수의 개수를 출력한다. empty: 스택이 비어있으면 1, 아니면 0을 출력한다. top: 스택의 가장 위에 있는 정수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다. 입력 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보.. [JAVA] enum 이란? (2) enum 이란? Enum이란 Enumeration의 앞 글자로 열거라는 의미를 갖는다. 관련이 있는 상수들의 집합입니다. 자바에서는 final로 String과 같은 문자열이나 숫자들을 나타내는 기본 자료형의 값을 고정할 수 있다. 이렇게 고정된 값을 상수라고 한다. 어떤 클래스가 상수만으로 작성되어 있으면 반드시 class로 선언할 필요는 없습니다. 이럴 때 class로 선언된 부분에 enum이라고 선언하면 이 객체는 상수의 집합이다. 라는 것을 명시적으로 나타낼 수 있다. enum의 기본구조 public enum [클래스명] { 상수1, 상수2; } enum은 상수들의 집합이며, 각각의 상수는 ,로 구분한다. 마지막 상수 뒤에는 세미콜론(;)이 와야한다. enum 사용 예시 1 public enum E.. [JAVA] 백준 16928번: 뱀과 사다리 게임 [로또] step2 - 로또(자동) - 최종 피드백 (22일차) static Lotto lotto = new Lotto(); static ArrayList issuedLottolist = new ArrayList(); 해당 변수들은 생성자를 통해 초기화하고 있는데요 생성자를 통한다는 것은 인스턴스화를 한다는 것인데, 모든 인스턴스가 공유하는 자원을 생성자로 초기화하는 설계에 어떠한 문제가 있을지 고민해보면 좋겠습니다! 추후 해당 서비스를 웹서비스로 공개하여 실제 로또 서비스를 여러 유저들이 사용할 수 있게 구현한다는 생각으로 접근해보면 좋을 것 같아요 :) 생성자에서 초기화를 하는 것에 대한 문제는, 클래스를 사용할 때 무조건 해당 변수를 인자로 넣어야 한다는 부담감이 생기는 것에 대한 문제 일까요?? LottoMachine에 있던 lastWinningLottoNum.. 이전 1 ··· 47 48 49 50 51 52 53 ··· 58 다음