자바

    서블릿, JSP, MVC 패턴

    서블릿, JSP, MVC 패턴

    목차 회원 관리 웹 애플리케이션 요구사항 서블릿으로 회원 관리 웹 애플리케이션 만들기 JSP로 회원 관리 웹 애플리케이션 만들기 MVC 패턴 - 개요 MVC 패턴 - 적용 MVC 패턴 - 한계 회원 관리 웹 애플리케이션 요구사항 회원 정보 이름: username 나이: age 기능 요구사항 회원 저장 회원 목록 조회 회원 도메인 모델 회원 도메인 모델 package hello.servlet.domain.member; import lombok.Getter; import lombok.Setter; @Getter @Setter public class Member { private Long id; private String username; private int age; public Member() { } pu..

    미친 로봇 - 1405번

    미친 로봇 - 1405번

    모든 경로를 확인하면서 백트레킹으로 단순하지 않은 경로를 찾아주었다. 자바에 지수형 표현을 제거하기 위해 BigDecimal을 사용했다. 내 코드 package com.company; import java.io.*; import java.math.BigDecimal; import java.util.*; public class Main { static int N; static int[][] way = {{-1, 0, 0}, {1, 0, 0}, {0, -1, 0}, {0, 1, 0}}; static int[][] table = new int[30][30]; static int x = 15; static int y = 15; static double answer = 0; public static void ma..

    음식 평론가 - 1188번

    음식 평론가 - 1188번

    내 코드 package com.company; import java.io.*; import java.util.*; public class Main { static double N, M; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); N = Double.parseDouble(st.nextToken()); M = Double.parseDouble(st.nextToken()); double x = N * M; int c..

    N으로 표현

    N으로 표현

    내 코드 import java.util.*; class Solution { public int solution(int N, int number) { int temp = 0; ArrayList list = new ArrayList(); for(int i = 0; i < 9; i++){ list.add(new ArrayList()); list.get(i).add(temp); temp = temp * 10 + N; } for(int i = 1; i < 9; i++){ for(int j = 1; j < i; j++){ for(int k = 0; k < list.get(j).size(); k++){ for(int u = 0; u < list.get(i - j).size(); u++){ list.get(i).add..

    공약수 - 2436번

    공약수 - 2436번

    풀이 방법 유클리드 호제법 최소 공배수 = 두 자연수의 곱 / 최대 공약수 내 코드 package com.company; import java.io.*; import java.util.*; public class Main { static long A, B; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); A = Long.parseLong(st.nextToken()); B = Long.parseLong(st.nextT..

    수고르기 - 2230번

    수고르기 - 2230번

    풀이 방법 2개의 인덱스를 사용해서 풀이했다. 선택한 두 수의 차가 M보다 크다면 앞에 있는 인덱스를 증가시키고 그 값이 최소값인지 확인해 주었다. 작다면 뒤에 있는 인덱스를 증가 시키면서 확인해주었다. 내 코드 package com.company; import java.io.*; import java.util.*; public class Main { static long N, M; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.read..

    숫자고르기 - 2668번

    숫자고르기 - 2668번

    내 코드 package com.company; import java.io.*; import java.util.*; public class Main { static int N; static boolean[] visited; static int[] arr; static HashSet set = new HashSet(); public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); N = Integer.parseInt(br.readLine()); arr = new int[N + 1]; for (int i = 1; i

    문자열 잘라내기 - 2866번

    문자열 잘라내기 - 2866번

    풀이 방법 이분 탐색을 이용해서 풀이했다. mid값은 지운 열의 갯수라서 중복일 경우 right를 mid-1로 해줘서 더 위를 확인해주고 중복이 아니라면 지워질 수 있기 때문에 count값을 mid로 주고 left를 mid+1로 해줘서 더 지울 수 있는지 확인해주었다. 내 코드 package com.company; import java.io.*; import java.util.*; public class Main { static int R, C; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokeni..

    줄어들지 않아 - 2688번

    줄어들지 않아 - 2688번

    풀이 방법 dp를 이용해서 모든 자리 수의 개수를 구해주었다. 자릿수는 마지막 자릿수가 0,1,2....9 일 경우 따로 갯수를 구하고 더해서 총합을 구하는 방식을 사용했다. 마지막 자리가 0으로 나오는 경우는 0~9까지 모두 나오고 1로 나오는 경우는 1~9, 2로 나오는 경우는 3~9까지 나온다. 예를 들면 4자리수 중 마지막 자릿수가 0으로 나오는 수는 3자리 수의 모든 경우에서 나오고 1로 나오는 수는 3자리 수에서 마지막 자릿수가 1~9인 경우만 나오게 된다. 내 코드 package com.company; import java.io.*; import java.util.*; public class Main { static int T; public static void main(String[] ar..

    팀 배정 - 18768번

    팀 배정 - 18768번

    풀이 방법 그리디로 풀어야 하는 문제이지만 무조건 능력이 큰 것부터 넣게 되면 안된다. 반례 1 2 3 4 5 6 6 6 6 6 각 참가자는 공, 수 능력 중 더 큰것을 선택해야 하는데 그러기 위해서는 공, 수 능력의 차이가 가장 큰 것부터 넣어줘야 한다. 우선순위 큐를 이용해서 차이가 더 큰것을 우선순위로 주고 차이가 같다면 값이 더 큰 참가자를 우선으로 해주었다. 내 코드 package com.company; import java.io.*; import java.util.*; public class Main { static int N, M, T; public static void main(String[] args) throws IOException { BufferedReader br = new Buf..