빌더 패턴(Builder pattern)이란? 객체를 정의하고 그 객체를 생성할 때 보통 생성자를 통해 생성하는 것을 생각한다. 객체를 생성할 수 있는 빌더를 builder() 함수를 통해 얻고 거기에 셋팅하고자 하는 값을 셋팅하고 마지막에 build()를 통해 빌더를 작동 시켜 객체를 생성한다. 빌더를 왜 써야할까? 1. 생성자 파라미터가 많을 경우 가독성이 좋지 않다. 2. 값을 넣는 순서가 상관이 없다. 1번 User oneUser = new User( "test@test", "test1", "bang", "010-1234-1234", "dsa", "hi", "n", "ahffk", "dsa", LocalDateTime.now()); 이런 경우에 어떤 값을 넣어야 되고 어떤 순서인지 너무 헷갈리지 ..
투 포인터 개념 각 원소마다 모든 값을 순회해야할 때, *연속하다는 특성을 이용해서 처리, 단순 반복문을 이용해서 문제를 해결하려고 하면, 시간 복잡도가 O(N^2), O(N^3)인 경우가 있기 때문에 투 포인터 알고리즘을 이용해서 문제를 해결해야 된다. 포인터 2개가 1차원 배열을 증가하는 방향으로만 순회하므로 O(N) + O(N) = O(N) 이 알고리즘을 처음 접했을 때 어려웠는데 이제는 기본적인 문제는 풀 수 있게 되었다. 그만큼 계속 반복함! https://www.acmicpc.net/problem/2003 이 문제를 기반으로 설명을 하겠따. n개로 나열 된 수, +해서 m이되는 경우의 수를 구하자 - 자연수로 이루어진 1차원 배열이 주어진다. - 연속되는 부분 배열 중 원소의 합이 M이 되는 ..
문제 ICPC Bangkok Regional에 참가하기 위해 수완나품 국제공항에 막 도착한 팀 레드시프트 일행은 눈을 믿을 수 없었다. 공항의 대형 스크린에 올해가 2562년이라고 적혀 있던 것이었다. 불교 국가인 태국은 불멸기원(佛滅紀元), 즉 석가모니가 열반한 해를 기준으로 연도를 세는 불기를 사용한다. 반면, 우리나라는 서기 연도를 사용하고 있다. 불기 연도가 주어질 때 이를 서기 연도로 바꿔 주는 프로그램을 작성하시오. 입력 서기 연도를 알아보고 싶은 불기 연도 y가 주어진다. (1000 ≤ y ≤ 3000) 출력 불기 연도를 서기 연도로 변환한 결과를 출력한다. 예제 입력 1 2541 예제 출력 1 1998 -문제 접근 과정- 불기연도를 어떻게 계산하는 지 몰라서 검색창에 불기연도에 관한 정보를..
문제 준하는 사이트에 회원가입을 하다가 joonas라는 아이디가 이미 존재하는 것을 보고 놀랐다. 준하는 놀람을 ??!로 표현한다. 준하가 가입하려고 하는 사이트에 이미 존재하는 아이디가 주어졌을 때, 놀람을 표현하는 프로그램을 작성하시오. 입력 첫째 줄에 준하가 가입하려고 하는 사이트에 이미 존재하는 아이디가 주어진다. 아이디는 알파벳 소문자로만 이루어져 있으며, 길이는 50자를 넘지 않는다. 출력 첫째 줄에 준하의 놀람을 출력한다. 놀람은 아이디 뒤에 ??!를 붙여서 나타낸다. 예제 입력 1 joonas 예제 출력 1 joonas??! -문제 접근 과정- joonas를 입력했을 때 중복이라고 떠야 되나? 라고 생각했는데 그냥 단순하게 joonas를 출력하면 그 뒤에 ??!만 같이 출력시키면 되는 문제..
배열이란? 자료형이 동일한 여러개의 값을 연속적으로 저장할 수 있도록 하는 기억 공간의 집합체. package day09; public class Day09_01 { public static void main(String[] args) { // 1.선언하기. (구청신고) int[] arr; // 2.메모리 생성 (건물짓기) arr = new int[3]; // 3.초기화 (입주) arr[0] = 10; arr[1] = 20; arr[2] = 30; System.out.println("arr[0] = " +arr[0]); System.out.println("arr[1] = " +arr[1]); System.out.println("arr[2] = " +arr[2]); System.out.prin..
package day09; import java.io.*; public class Day09_01 { //가위 바위 보 게임 => switch문을 이용해서 풀어보기. public static void main(String[] args) throws IOException{ boolean sw = true; while(sw) { System.out.println("=========="); System.out.println("가위 바위 보 게임 v1.0"); System.out.println("----------"); System.out.println("1.가위 2.바위 3.보 4.종료"); int user=0; do { user = System.in.read()-48; System.in.skip(2); } ..