
풀이 import java.util.Scanner; public class Main05 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); //바구니 개수 1~N개 int N = sc.nextInt(); int [] array = new int[N]; // 공을 바꾸는 횟수 int M = sc.nextInt(); //임시저장 공간 변수 = temp int temp; // 바구니 공 초기화 for(int i=0; i

처음 DB연동하면서 배울 때 "DTO는 Data Trasfer Object라고 계층간 데이터 전달을 위해 사용한다"라고 해서 DTO를 써서 프로젝트를 진행했었다. DTO를 사용하면서 무엇이 저장되는지 알기 쉬웠던 경험이 있는데 이번에 Map을 다시 공부하다가 dto도 데이터 담고 map도 데이터담고 그러면 뭘 써야 더 효율적일까? 라는 궁금증이 들었다. 1. 컴파일 에러가 안나타난다. Map은 기본적으로 Map 타입이다. 보통 Map은 key-value 쌍으로 저장되는데 value값은 Object 타입이다. Object 클래스는 최상위 클래스기 때문에 모든 타입을 저장할 수 있다. 따로 타입을 확인 하지 않으면 모든 타입이 다 저장되기때문에 런타임때 ClassNotFoundException 에러를 마주친..

List, Set, Map은 자바의 컬렉션 프레임 워크의 핵심 인터페이스이다. 컬렉션 프레임워크는 다수의 객체를 다루기 위한 표준화된 프로그래밍 방식 이라고 생각하면 이해가 편하다! 한마디로 자바에서는 다수의 객체를 다룰 때 List, Set, Map을 사용해서 프로그래밍 한다. 1. List 데이터의 중복을 허용해준다 저장순서가 유지된다. 인덱스로 원소의 주소로 접근을 할 수 있다. ✔ 주요 구현 클래스 1) ArrayList ArrayList arraylist = new ArrayList(); //add = 추가하는 메소드 arraylist.add("첫번째"); arraylist.add("A"); arraylist.add("세번째"); arraylist.add(3,"A"); System.out.pri..

기존 프로젝트는 로그인 보안은 하나도 안해놨었다. 그래서 스터디를 하면서 알게 된 스프링 시큐리티를 통해 프로젝트 리팩토링을 진행했다. 처음 구현할 때 너무 복잡하다보니까 따라하면서 해보면 알게되겠지 했다가... 개념은 공부하고 가야하할꺼 같아서 정리해보자 한다. 1. Spring Security? Spring Security는 자바 기반의 어플리케이션에서 인증과 인가 및 웹보안을 제공해주는 프레임워크이다. 프레임워크이기 때문에 이미 짜여져 있는 내부 로직을 통해 인증과 권한 확인 등의 기능을 제공해준다. 그래서 개발자가 따로 보안 로직을 따로 구현하지 않아도 되는 편리함이 ++된다. 2. 인증 방식 스프링 시큐리티의 기본적인 인증방식은 credential 방식이다. credential 방식은 princ..
EOF (End Of File) : 더이상 읽을 수 없는 데이터가 없다 => 입력값이 명시되지 않은 조건에서 EOF를 사용한다. 백준풀다가 실행 제대로 되는데 왜 틀렸다고 뜨지 하고 보니까 EOF사용하라는 문제였다. EOF??? 하고 찾아보니까 N번 입력하라는 말이 없을 때 사용하는 함수라는데 이건 몰랐네... 여튼 기존 코드에 EOF를 써서 제출했더니 성공! 그래서 이번 포스팅은 EOF에 대한 포스팅이다. EOF 사용법 1. Scanner 클래스 Scanner 클래스에는 EOF를 지원해주는 내장함수가 있어서 그 함수를 사용해 주면 된다 hasNext() Scanner sc = new Scanner(System.in); while(sc.hasNext()) { int a = sc.nextInt(); int..
3자리 숫자를 입력하고 3자리 숫자를 각각 따로 따로 분리해서 곱한 후에 다 더하는 문제를 풀게 됐다. 어떻게 해야할지는 아는데 배열 쓰는것이 익숙치 않아서 역시나 구글링 ㅎ.. 먼저 string으로 숫자를 입력받고 입력한 숫자를 char 배열에 넣어주면 숫자들이 하나하나씩 따로 저장된다! 이때 써주어야 하는 메소드는 string.toCharArray() String B = sc.nextLine(); char[] arr = B.toCharArray(); String.toCharArray() string을 char타입으로 변화시켜주는 메소드이다. 나는 B에 string타입으로 '385'를 입력했고 toCharArray()를 사용하면 arr[0] = '3' arr[1] = '8' arr[2] = '5' 이렇..
때는 자바 공부 시작하고 얼마 안되서 문자열을 비교해야하는 문제가 있었다. 진짜 아무리 해봐도 맞는데 false가 뜬다. 뭐가 문제일까 하면서 짝꿍에게 물어봤다. 자 항상 기억해야하는 것 문자열 비교는 equals() 메소드를 사용하자! 내 문제는 문자열 비교해야 하는데 동등비교 == 를 사용한 것 이때 이후로 문자열 비교를 잘 하지 않아서 잊어먹고 있다가 플젝 기간 다른조 언니의 코드를 보고 제대로 익히지 않았던 문자열 비교가 생각났다. 문자열을 비교할 때는 ==를 비교하지 않는다. 그 이유는 저장된 객체와 해당 문자열을 다른 객체로 보기 때문에 동등하게 비교 했을 경우 false 로 결과가 반환되기 때문 때문에 문자열을 비교할 땐 equals()메소드를 사용해야한다. +@ 대소문자 구분하지 않고 비교..