전체 글287 프로그래머스_해시_위장 (JAVA) 문제 설명 스파이들은 매일 다른 옷을 조합하여 입어 자신을 위장합니다. 예를 들어 스파이가 가진 옷이 아래와 같고 오늘 스파이가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야 합니다. 스파이가 가진 의상들이 담긴 2차원 배열 clothes가 주어질 때 서로 다른 옷의 조합의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항 clothes의 각 행은 [의상의 이름, 의상의 종류]로 이루어져 있습니다. 스파이가 가진 의상의 수는 1개 이상 30개 이하입니다. 같은 이름을 가진 의상은 존재하지 않습니다. clothes의 모든 원소는 문자열로 이루어져 있습니다. 모든 문자열의 길이는 1 이상 20 이하인 .. ▸알고리즘 문제 풀이 2020. 4. 15. 부분집합_재귀함수_멱집합 구하기 (JAVA) [ 멱집합(powerset) ] 공집합을 포함해 모든 부분집합을 가진 집합 (중복 없음) 어떠한 집합의 부분집합을 산출하는 로직은 여러 가지가 있습니다. 그 중 모든 부분집합(멱집합)을 가장 쉽게 구할 수 있는 재귀함수 사용법입니다. 원소 순서에 상관없이 중복을 허용하지 않기 때문에 rCr의 조합과 동일한 결과입니다. 아래 3개짜리 배열이 하나 있다고 해보겠습니다. * 집합 : { a, b, c } 먼저 가장 앞에 있는 "a"의 기준에서 생각해봅니다. "a"는 부분집합에 있을 수도 있고 없을 수도 있습니다. 따라서 "a"가 있건 없건 부분집합을 구하기 위해서는 { b, c }의 부분집합 정보가 필요합니다. 피보나치 수열과 같이 큰 문제를 해결하기 위해 작은 정보가 필요한 경우입니다. 그럼 이번엔 { b,.. ▸JAVA/알고리즘 및 자료구조 2020. 4. 14. 프로그래머스_해시_전화번호 목록 (JAVA) 문제 설명 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 4421 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요. 제한 사항 phone_book의 길이는 1 이상 1,000,000 이하입니다. 각 전화번호의 길이는 1 이상 20 이하입니다. 입출력 예제입출력 예 설명 입출력 예 #1 앞에서 설명한 예와.. ▸알고리즘 문제 풀이 2020. 4. 14. 프로그래머스_해시_완주하지 못한 선수 (JAVA) 기초적인 문제로 개념 자체는 엄청 쉬운데 최적화된 로직 구성이 어려운 것 같습니다. 간단히 participant 배열 안에 있는 문자열 중 completion 배열 안에 포함되지 않는 문자열 1개가 있으니 잘 찾아봐라라는 문제입니다. participant에는 중복 문자열이 존재할 수 있습니다. 문제 설명 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 제한사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 .. ▸알고리즘 문제 풀이 2020. 4. 14. java.lang.Comparable / java.util.Comparator 사용법 [ java.lang.Comparable ] 객체 자신이 가지고 있는 자신의 정렬 기준을 정의하는 인터페이스 Arrays.sort() 및 Collection.sort() 메소드의 기준으로 적용 [ java.util.Comparator ] Arrays.sort() 및 Collection.sort() 메소드의 기준으로 삽입해주는 정렬 기준을 가진 인터페이스 Comparable은 직접 클래스를 만들 때 해당 클래스 객체의 정렬 기준을 미리 설정해 두기 위해 구현하는 인터페이스입니다. 래퍼 클래스나 String과 같이 자바에서 정렬이 가능한 타입들은 모두 Comparable을 구현하고 있습니다. 내부적인 정렬 기준을 이미 가지고 있다는 의미입니다. * 내부적인 Comparable 구현 정렬 기준 - 숫자 : 오.. ▸JAVA/라이브러리(API) 2020. 4. 13. 게시물 삭제 시 확인창 띄우기 (부트스트랩 Modal(모달)) 백엔드 공부하면서 프론트는 대충 테스트로 사용하는 분들 전용입니다. 간편하게 부트스트랩4를 사용하고 있습니다. 게시물을 삭제할 때 확인창을 띄운 뒤 확인 버튼을 누르면 Form 태그 안의 파라미터를 submit 하는 방법입니다. 좀 더 고급진 방법이 많겠지만 가장 간단한 방법으로 진행합니다. 부트스트랩 홈페이지에서 Modal을 찾아보면 여러 스타일들이 있습니다. 창 자체를 띄우는 것에 자바스크립트도 필요 없는 것들이 있기 때문에 바로 가져와서 사용해주면 됩니다. 창이 보여지거나 사라지는 기능은 이미 있으므로 우리가 해야할 것은 '삭제하기' 버튼을 눌렀을 때 실제 form 태그안의 파라미터들이 지정된 URL로 전송되도록 하는 것입니다. 부트스트랩4 공식 홈페이지 Modal 가이드 먼저 모달 버튼과 창을 만.. ▸JSP & Servlet/프론트엔드 2020. 4. 12. ajax를 이용한 게시물 공감/비공감 기능 만들기 (Form 데이터 전송) 가장 기초적인 버전의 ajax 사용법입니다. 저처럼 서버쪽 공부하면서 테스트용으로 프론트를 만드는 분들에게 도움이 될 것 같습니다. ajax는 간단히 전체 페이지가 아닌 일부분의 내용만 고쳐주도록 해주는 자바스크립트의 기능입니다. 서버에서는 요청받은 내용에 대해 처리하고 데이터를 JSON이나 XML 형식으로 리턴시켜주면 됩니다. REST API의 형식과 비슷합니다. 다만 외부에서 요청하는 데이터가 아닌만큼 완전한 REST API 형식이 아닌, 단순하게 데이터 교환만 해주도록 작성했습니다. 먼저 트리거가 될 버튼을 만들어줍니다. 그냥 텍스트도 상관없습니다. 자바스크립트에서 해당 링크를 찾을 수 있도록 id를 부여할 수 있으면 됩니다. 저는 부트스트랩4를 사용했습니다. 공감 그리고 버튼을 눌렀을 때 서버에 .. ▸JSP & Servlet/프론트엔드 2020. 4. 12. 화면 전환 시 경고창 띄우고 리다이렉트하기 프론트는 하나도 몰라서 엄청 헤맨 부분입니다. 뷰에서 어떤 자료를 요청했을 때 서버에서 처리 후 결과를 리턴할 때, 처리 결과에 대한 메세지를 어떻게 전달할까에 대한 문제입니다. 원래 JSP에서 처리할 때는 컨트롤러에서 최종적으로 처리 결과를 확인한 뒤 request나 session에 Attribute로 메세지 내용을 담아 뷰에 전달하고, 뷰에서 해당 Attribute가 있다면 메세지를 출력해주는 식이었습니다. 하지만 이걸 굳이 서버단에서 해야하나 싶어 단순한 결과 확인은 뷰단에서 하기로 했습니다. 뷰 페이지에서는 요청한 정보에 대한 객체가 있다면 출력해주면 되고, 없다면(null) 경고창을 띄우고 다른 화면으로 리다이렉트 시켜주면 될 것 같습니다. 이렇게하면 서버에서는 그냥 처리 결과만 뷰에 회신해주면.. ▸JSP & Servlet/프론트엔드 2020. 4. 12. Mybatis, MySQL 계층형 게시판 쿼리, 페이징, Date 처리 - Develop OS : Windows10 Ent, 64bit - WEB/WAS Server : Tomcat v9.0 - DBMS : MySQL 5.7.29 for Linux (Docker) - Language : JAVA 1.8 (JDK 1.8) - Framwork : Spring 3.2.9 Release - Build Tool : Maven 3.6.3 - ORM : Mybatis 3.2.8 계층형 게시판의 로직은 JSP/서블릿으로 작성할 때와 다른점이 없습니다. 다만 이번에는 오라클DB에서 MySQL로 바꾸면서 쿼리 방식이 좀 바뀌고, MyBatis로 DB 작업을 하면서 또 조금 바뀐 부분이 있어 정리합니다. 계층형 게시판에 대한 설명은 아래 링크를 참조하시면 됩니다. [JSP & Servlet/-.. ▸Spring MVC/기본 문법 2020. 4. 11. SMTP 서버를 이용한 스프링 메일 발송 (네이버 메일) - Develop OS : Windows10 Ent, 64bit - WEB/WAS Server : Tomcat v9.0 - DBMS : MySQL 5.7.29 for Linux (Docker) - Language : JAVA 1.8 (JDK 1.8) - Framwork : Spring 3.1.1 Release - Build Tool : Maven 3.6.3 - ORM : Mybatis 3.2.8 자동 로그인 시 2차 인증을 하기 위해 메일을 발송하는 클래스를 작성해봅니다. SMTP 서버를 직접 구축할 수도 있겠지만 이번 글에서는 네이버의 계정에서 제공해주는 SMTP 기능을 사용해서 메일을 보내는 기능을 구현하도록 하겠습니다. SMTP는 메일을 보내주는 역할을 하는 서버를 의미합니다. 반대로 POP은 메일.. ▸Spring MVC/기본 문법 2020. 4. 7. 스프링, Mybatis, MySQL_쿼리문 다중 파라미터 사용 [5/5] - Develop OS : Windows10 Ent, 64bit - WEB/WAS Server : Tomcat v9.0 - DBMS : MySQL 5.7.29 for Linux (Docker) - Language : JAVA 1.8 (JDK 1.8) - Framwork : Spring 3.1.1 Release - Build Tool : Maven 3.6.3 - ORM : Mybatis 3.2.8 쿼리문에 파라미터가 여러개 필요한 경우가 있습니다. 이 경우에 해결책은 두 가지입니다. 1. 객체를 만들어서 대입 보통 VO 객체를 많이 사용합니다. ParameterType과 ResultType 모두 setter와 getter가 있는 객체 타입으로 넣어주고 필드명(정확히는 getter 메소드에서 get을 빼고 .. ▸Spring MVC/기본 문법 2020. 4. 3. 스프링 Security_로그인_security 태그 라이브러리 [9/9] - Develop OS : Windows10 Ent, 64bit - WEB/WAS Server : Tomcat v9.0 - DBMS : MySQL 5.7.29 for Linux (Docker) - Language : JAVA 1.8 (JDK 1.8) - Framwork : Spring 3.1.1 Release - Build Tool : Maven 3.6.3 - ORM : Mybatis 3.2.8 커스터마이징 순서대로 총 9개의 포스팅으로 나눠져 있습니다. 순서대로 보면 쉽게 적용할 수 있습니다. [Spring MVC/- 기본 문법] - 스프링 Security_로그인_기본 컨텍스트 설정 [1/9] [Spring MVC/- 기본 문법] - 스프링 Security_로그인_DB 연동 로직 작성 [2/9] [Sp.. ▸Spring Security 2020. 3. 31. 스프링 Security_로그인_자동 로그인(Remember-me) [8/9] - Develop OS : Windows10 Ent, 64bit - WEB/WAS Server : Tomcat v9.0 - DBMS : MySQL 5.7.29 for Linux (Docker) - Language : JAVA 1.8 (JDK 1.8) - Framwork : Spring 3.1.1 Release - Build Tool : Maven 3.6.3 - ORM : Mybatis 3.2.8 커스터마이징 순서대로 총 9개의 포스팅으로 나눠져 있습니다. 순서대로 보면 쉽게 적용할 수 있습니다. [Spring MVC/- 기본 문법] - 스프링 Security_로그인_기본 컨텍스트 설정 [1/9] [Spring MVC/- 기본 문법] - 스프링 Security_로그인_DB 연동 로직 작성 [2/9] [Sp.. ▸Spring Security 2020. 3. 31. 스프링 Security_로그인_Principal 객체 [7/9] - Develop OS : Windows10 Ent, 64bit - WEB/WAS Server : Tomcat v9.0 - DBMS : MySQL 5.7.29 for Linux (Docker) - Language : JAVA 1.8 (JDK 1.8) - Framwork : Spring 3.1.1 Release - Build Tool : Maven 3.6.3 - ORM : Mybatis 3.2.8 커스터마이징 순서대로 총 9개의 포스팅으로 나눠져 있습니다. 순서대로 보면 쉽게 적용할 수 있습니다. [Spring MVC/- 기본 문법] - 스프링 Security_로그인_기본 컨텍스트 설정 [1/9] [Spring MVC/- 기본 문법] - 스프링 Security_로그인_DB 연동 로직 작성 [2/9] [Sp.. ▸Spring Security 2020. 3. 30. 스프링 Security_로그인_암호화된 DB 패스워드로 인증 [6/9] - Develop OS : Windows10 Ent, 64bit - WEB/WAS Server : Tomcat v9.0 - DBMS : MySQL 5.7.29 for Linux (Docker) - Language : JAVA 1.8 (JDK 1.8) - Framwork : Spring 3.1.1 Release - Build Tool : Maven 3.6.3 - ORM : Mybatis 3.2.8 커스터마이징 순서대로 총 9개의 포스팅으로 나눠져 있습니다. 순서대로 보면 쉽게 적용할 수 있습니다. [Spring MVC/- 기본 문법] - 스프링 Security_로그인_기본 컨텍스트 설정 [1/9] [Spring MVC/- 기본 문법] - 스프링 Security_로그인_DB 연동 로직 작성 [2/9] [Sp.. ▸Spring Security 2020. 3. 29. 이전 1 2 3 4 5 6 7 8 ··· 20 다음 💲 추천 글 반응형