분류 전체보기 83

[Algorithm] 프로그래머스_메뉴 리뉴얼_2021 KAKAO BLIND RECRUITMENT

코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr 설명 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 새로운 메뉴를 제공하기로 결정했습니다. 어떤 단품메뉴들을 조합해서 코스요리 메뉴로 구성하면 좋을 지 고민하던 "스카피"는 이전에 각 손님들이 주문할 때 가장 많이 함께 주문한 단품메뉴들을 코스요리 메뉴로 구성하기로 했습니다. 단, 코스요리 메뉴는 최소 2가지 이상의 단품메뉴로 구성..

Algorithm 2021.08.31

[Spring] HiddenHttpMethodFilter로 GET,POST를 DELETE,PUT등 으로 받기_Spring Boot설정

브라우저 VIEW단에서 서버로 데이터를 전송할 경우 FORM으로 GET 또는 POST로 전송이 가능하다. FORM에서 전송된 GET 또는 POST 타입은 서버에서 @GetMapping 또는 @PostMapping으로 받을 수 있지만 나머지 DELETE, PUT, PATCH 타입들은 FORM에서 지원하지 않기 떄문에 기존에는 ajax로 타입을 명시하여 전달한 후 @DeleteMapping, @PutMapping, @PatchMapping으로 받았었다. 하지만 HiddenHttpMethodFilter를 사용하면 기존 FORM 방식으로 전송하고 서버에서는 원하는 타입으로 받을 수 있다. 즉, VIEW단에서 기존 FORM의 GET 또는 POST로 전송한 후 서버에서 PUT, DELETE, PATCH등으로 타입을..

Spring 2021.08.26

[Algorithm] 프로그래머스_멀쩡한 사각형_Summer/Winter Coding(2019)

코딩테스트 연습 - 멀쩡한 사각형 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 programmers.co.kr 설명 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 따라 1cm × 1cm의 정사각형으로 잘라 사용할 예정이었는데, 누군가가 이 종이를 대각선 꼭지점 2개를 잇는 방향으로 잘라 놓았습니다. 그러므로 현재 직사각형 종이는 크기가 같은 직각삼각형 2개로 나누어진 상태입니다. 새로운..

Algorithm 2021.08.25

[Algorithm] 프로그래머스_카카오프렌즈 컬러링북_2017 카카오코드 예선

코딩테스트 연습 - 카카오프렌즈 컬러링북 6 4 [[1, 1, 1, 0], [1, 2, 2, 0], [1, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 3], [0, 0, 0, 3]] [4, 5] programmers.co.kr 카카오프렌즈 컬러링북 설명 출판사의 편집자인 어피치는 네오에게 컬러링북에 들어갈 원화를 그려달라고 부탁하여 여러 장의 그림을 받았다. 여러 장의 그림을 난이도 순으로 컬러링북에 넣고 싶었던 어피치는 영역이 많으면 색칠하기가 까다로워 어려워진다는 사실을 발견하고 그림의 난이도를 영역의 수로 정의하였다. (영역이란 상하좌우로 연결된 같은 색상의 공간을 의미한다.) 그림에 몇 개의 영역이 있는지와 가장 큰 영역의 넓이는 얼마인지 계산하는 프로그램을 작성해보자. 위의 그..

Algorithm 2021.08.24

[Algorithm] 프로그래머스_오픈채팅방_2019 KAKAO BLIND RECRUITMENT

설명 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오픈 채팅방을 개설한 사람을 위해, 다양한 사람들이 들어오고, 나가는 것을 지켜볼 수 있는 관리자창을 만들기로 했다. 채팅방에 누군가 들어오면 다음 메시지가 출력된다. "[닉네임]님이 들어왔습니다." 채팅방에서 누군가 나가면 다음 메시지가 출력된다. "[닉네임]님이 나갔습니다." 채팅방에서 닉네임을 변경하는 방법은 다음과 같이 두 가지이다. 채팅방을 나간 후, 새로운 닉네임으로 다시 들어간다. 채팅방에서 닉네임을 변경한다. 닉네임을 변경할 때는 기존에 채팅방에 출력되어 있던 메시지의 닉네임도 전부 변경된다. 예를 들어, ..

Algorithm 2021.08.23

[JPA] Spring Data JPA를 이용한 페이징 처리

JPA 페이징 관련하여 다양한기능들이나 동작원리, 개념 등 정리가 잘 된 글들이 많다. 추후 참고 해보자. 여기선 예시를 통해 기본으로 간단하게 JPA로 페이징 처리를 해보자. 아래 설명할 예시는 아래의 가이드문서를 참고했습니다. https://docs.spring.io/spring-data/jpa/docs/2.3.1.RELEASE/reference/html/#reference Spring Data JPA - Reference Documentation Example 108. Using @Transactional at query methods @Transactional(readOnly = true) public interface UserRepository extends JpaRepository { List..

JPA 2021.08.19

[Spring] 유효성 검사(Validating Form)

사용해 보면서 테스트한 내용을 간단하게 정리한 글입니다. validation이란 어떤 데이터의 값이 유효한지, 타당한지 확인하는 것을 의미한다. 즉 데이터 필드들의 값 존재 여부, 글자의 제한 등 해당 양식에 유효한지 판별하기 위해서 사용한다. 1. 의존성 주입 gradle implementation 'org.springframework.boot:spring-boot-starter-validation' maven org.springframework.boot spring-boot-starter-validation 2. 데이터 컨테이너 클래스 유효성을 검사가 필요한 데이터가 담긴 클래스를 선택한다. 아래 Board클래스는 id, title, contet를 프로퍼티로 사용하고 있고 유효성 검사가 필요하다고 가..

Spring 2021.08.18

[JAVA] 비트연산 정리

* 이진 비트 연산을 수행해서 결과를 정수로 반환하는 연산자 (정수형만 사용 가능) 1. AND 연산 (&) - 둘다 '1'일 경우 '1'로 변환 A 1 0 1 0 B 1 0 1 1 Result 1 0 1 0 int A = 10; int B = 11; System.out.println("A : " + Integer.toBinaryString(A)); System.out.println("B : " + Integer.toBinaryString(B)); System.out.println("A & B : "+Integer.toBinaryString(A & B)); 2. OR 연산 ( | ) - 하나만 '1'일 경우 '1'로 변환 A 1 0 1 0 B 1 0 1 1 Result 1 0 1 1 int A = 10;..

Java 2021.08.17

[JAVA] 진법 변환 정리 (n진수 <-> 10진수)

1. 10진수 -> n진수 * 변환하기 전에 확인! 10진수를 제외한 나머지 진수는 String으로 받아야 한다. -> int는 전부 10진수로 인식 2진수, 8진수, 16진수는 아래와 같이 Binary, Octal, Hex함수가 존재한다. 물론 toString(int n, int radix)로 사용해도 무관하다. 테스트 코드 public class Solution { public static void main(String[] args) { // 테스트를 위한 10진수 값 = 25 int a = 25; System.out.println("10진수 -> 2진수"); System.out.println(Integer.toBinaryString(a)); System.out.println(Integer.toStr..

Java 2021.08.15