프로그래머스 2단계 숫자야구 문제 url : https://programmers.co.kr/learn/courses/30/lessons/42584?language=java 문제설명숫자 야구 게임이란 2명이 서로가 생각한 숫자를 맞추는 게임입니다. 각자 서로 다른 1~9까지 3자리 임의의 숫자를 정한 뒤 서로에게 3자리의 숫자를 불러서 결과를 확인합니다. 그리고 그 결과를 토대로 상대가 정한 숫자를 예상한 뒤 맞힙니다. * 숫자는 맞지만, 위치가 틀렸을 때는 볼 * 숫자와 위치가 모두 맞을 때는 스트라이크예를 들어, 아래의 경우가 있으면 A : 123B : 1스트라이크 1볼.A : 356B : 1스트라이크 0볼.A : 327B : 2스트라이크 0볼.A : 489B : 0스트라이크 1볼. 이때 가능한 답은 ..
1. Java 구현 (1) 메모리 초과 사례 - 이중배열 package test; import java.io.*; import java.math.BigInteger; import java.util.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); StringBuilder sb = new StringBuilder(); int n = Integer..
1. Java 구현 import java.io.*; import java.math.BigInteger; import java.util.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); StringBuilder sb = new StringBuilder(); int n = Integer.parseInt(br.readLine()); for(int i..
1. Java 구현 import java.io.*; import java.util.*; public class Main { public class Pair implements Comparable { private int x; private int y; public Pair(int x, int y) { this.x = x; this.y = y; } @Override public int compareTo(Pair o) { if(this.y > o.y) { return 1; } else if(this.y == o.y && this.x > o.x) { return 1; } else if(this.y == o.y && this.x < o.x) { return -1; } else if(this.y < o.y) { ..
1. Java 구현 import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); int n = Integer.parseInt(br.readLine()); long[] arr = new long[90 + 1]; arr[1] = 2; arr[2] = 1; for(int i = 3; i 0 - 1; j--) { arr[i] += ar..
1. Java 구현 import java.io.*; import java.util.Random; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); String first = br.readLine(); String second = br.readLine(); boolean[][] visited = new boolean[1000][1000]; int[][..
redirect vs forward Spring Boot 를 이용해서 프로그래밍을 하는 과정에서 페이지를 이동하는 두가지 방식이 있었다. 두 가지 방식을 간단하게 비교 정리해보려고 한다.먼저 Forward 방식을 알아보자! Client가 로그인을 위한 요청을 Server에 보내면, LoginServlet에서 요청을 받고, 중복체크를 하는 부분은 CheckServlet에게전달하여 처리하도록 한 다음에 CheckServlet이 요청에 응답을 하게 되어 있다. 로그인과 중복체크는 동일한 Web Container에서 처리되기 때문에 자원을공유할 수 있다. 그리고 LoginServlet이 전달하는 부분이 Web Container에 있기 때문에 사용자 입장에서는 주소의 변화를 확인할 수 없다. 요약하자면, Forw..
최근 Template Engine Mustache 를 이용해서 Spring Boot 개발을 진행하고 있다. 개발에 앞서 Template Engine이 무엇인지 정리해보려고 한다. 1. Template EngineTemplate Engine은 static 서비스에서 dynamic 서비스의 기능을 사용할 수 있도록 도와주는 기능으로 정의할 수 있다.해석하자면, 정적인 html 페이지에서 서버에서 전달받은 매개변수를 동적으로 제공함으로써, html 페이지를 재사용하는 것을 의미한다.또한, Template Engine에는 COC(Convention over Configuration : 설정보다 관례)를 제공해준다. 설정에 대한 부담감을 줄이고, 개발자가 개발과 설계에 집중 할 수 있도록 제공해준다. 아래는 CO..
1. 람다식이란.? 최근에 함수적 프로그래밍은 병렬처리와 이벤트 지향 프로그래밍에 적합하기 때문에 객체지향 프로그래밍과 함수적 프로그래밍을 혼합함으로써 효율적인프로그래밍이 될 수 있고록 프로그램 개발 언어가 변하고 있다. 함수적 프로그래밍을 사용하지 않으면, 이벤트 핸들러를 작성할 때 익명 내부 클래스로 인해코드의 복잡성과 가독성 문제가 있었는데 이를 해결 할 수 있다. 자바는 함수적 프로그래밍을 지원하기 위해 자바 8부터 람다식을 지원하고 있다. 하지만, 개인적으로 람다식의 가장 큰 장점은 매개변수로 값 뿐만 아니라 값을 처리하는 방식도 전달할 수 있다는 것이다. 메소드에 대한 추상화가 가능해지고,이를 통해 메소드의 재사용과 확장성을 극대화할 수 있는 장점이라고 생각한다. 마지막으로, 람다식을 한줄로 ..
1. Java 구현 package Q1977; import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); int m = (int)Math.ceil(Math.sqrt(Double.parseDouble(br.readLine()))); int n = (int)Math.sqrt(Double.parseDouble(br.readLine(..