목록전체 글 (240)
요르딩딩
https://programmers.co.kr/learn/courses/30/lessons/42578 코딩테스트 연습 - 위장 programmers.co.kr import java.util.*; import java.util.HashMap; class Solution { public int solution(String[][] clothes) { // map(key,value) value는 동일한 종류의 수 HashMap map = new HashMap(); for (int i = 0; i < clothes.length; i++) { if (!map.containsKey(clothes[i][1])) { map.put(clothes[i][1], 2); // 1개 종류당 있고,없고 : 경우의수 2가지로 시작함..
인덱스의 장점과 단점에 대해서 알아보겠습니다. 인덱스는 색인이라는 뜻으로 책의 목차와 같은 느낌으로 생각하시면 됩니다. 이와같이 해당 부분을 찾을때 보다 쉽게 찾을 수 있도록 도와주는 역할을 합니다. 이제 본격적으로 DB를 활용하여 인덱스의 장점과 단점에 대해 알아보도록 하겠습니다. 위의 DB를 보면 회원테이블이 있고, 그에대해 '이름 인덱스', '주소 인덱스', '연락처 인덱스'가 있습니다. [장점] 먼저, 인덱스의 장점에 대해 알아보겠습니다. 위의 회원테이블에서 이름으로 조회(select)할시 이미 인덱스로 정렬되어있는 '이름 인덱스'를 활용하여 조회를 하게 됩니다. 정렬된 인덱스 데이터에서 해당 값의 주소값을 찾아 HDD(하드디스크)에서 주소값으로 해당값을 메모리로 끌어올리게됩니다. 때문에 회원테이..
String을 인코딩하고 디코딩하는 이유는 무엇일까? = 한글을 지원하지 않는 경우를 위해서 사용한다. 만약 DB가 한글을 지원하지 않는 경우 한글로 된 문자를 숫자로 인코딩하여 DB에 저장하고, 사용할때는 디코딩하여 보여주면된다. 암호화도 이와 같은 원리이다. 1. JAVA 의 String 클래스는 유니코드로 처리되는 char 의 배열 이외에 어떠한 인코딩 정보를 갖고 있지 않는다. 2. String.getByte('인코딩명') 을 사용하여 인코딩 할 수 있으며, new String(byte[], "인코딩명") 을 사용하여 디코딩 할 수 있다. [Charset] Charset - 캐릭터셋을 나타내는 클래스 [인코딩] byte[] getBytes() byte[] getBytes(Charset charse..
[indexOF()] [lastIndexOF()] 참고 : https://mine-it-record.tistory.com/124 [JAVA] 자바_indexOf/lastIndexOf(특정 문자 위치 찾기) - 자바_특정 문자 위치 찾기 - indexOf() - indexOf(String str) - indexOf(int ch) - indexOf(int ch, int fromIndex) - indexOf(String str, int fromIndex) indexOf() 는 특정 문자나 문자열이 앞.. mine-it-record.tistory.com [String.format("%02d")~] %: 명령의 시작 0: 채워질 문자 2: 총 자리수 d; 10진수(정수) 참고 : http://mwultong.bl..
이번시간에는 날짜와 관련된 기능을 사용할 수 있는 LocalDate와 배열을 또 다른 배열로 복사해주는 System.arraycopy()에 대해서 공부해보겠습니다. 먼저 결과 부터 본 후 로직을 살펴보도록 하겠습니다. [결과] LocalDate.now() : 현재 날짜를 출력 LocalDate.now().format(DateTimeFormatter.BASIC_ISO_DATE) : 날짜를 BASIC_ISO DATE형식으로 포맷팅하여 출력 ('-'제거) LocalDate.now().minusDays(1) : 현재날짜에서 하루 전 날짜 출력 LocalDate.now().plusDays(1) : 현재날짜에서 다음 날짜 출력 LocalDate.now().isEqual(LocalDate.now()) : 날짜가 동일..
이번시간에는 파일을 업로드하는 방법을 적용해 보겠습니다. 단일 파일, 다중 파일을 각각 업로드 할 수 있도록 하겠습니다. 파일 업로드를 위해서 multipartResolver 인터페이스와 CommonMultipartResolver 구현체를 사용하겠습니다. 1. 파일 업로드를 위해 pom.xml에 아래와 같이 추가하여줍니다. [pom.xml] commons-fileupload commons-fileupload 1.3.3 2. 파일 업로드로 들어오는 데이터를 처리하기 위한 객체인 MultipartResolver 클래스를 Bean으로 등록하여 줍니다. [dispatcher-servlet.xml] 3. 화면을 출력해줄 jsp파일을 작성하여 줍니다. - 단일/다중 파일 업로드 form을 각각 작성하였습니다. - ..
startsWith() - boolean startsWIth(String prefix) - 대상 문자열이 특정 문자열(문자)로 시작하는지 체크 - 리턴 : (boolean) true/ false값 - 공백도 문자로 취급 Public class StartsWithTest{ public static void main(String[] args){ String startsWithS ="테스트 문구입니다" System.out.println(startsWithS.startsWith("테")); //true System.out.println(startsWithS.startsWith("테스트")); //true System.out.println(startsWithS.startsWith("문")); //false Sys..
이제부터 기술면접에서 질문으로 나올만한 내용들을 정리해 볼까 합니다. 기존에 블로그에 잘 정리해놓으신 분의 것을 참고하여 정리해보았습니다. 출처: https://mangkyu.tistory.com/88 [MangKyu's Diary] [OOP란] : (Object-Oiented Programming) 현실세계를 프로그래밍으로 옮겨와 현실세계의 사물들을 객체로 보고, 그 객체로부터 개발하고자 하는 특징과 기능을 뽑아와 프로그래밍하는 기법입니다. OOP코드로 작성하면 재사용성과 변형가능성을 높힐 수 있습니다. [OOP의 5가지 설계원칙] SRP(Single Responsibility Principle, 단일책임원칙) : 클래스는 단 하나의 목적을 가지며, 변경하는 이유도 단 하나의 이유여야한다. OCP(Op..