StringTokenizer st = new StringTokenizer(br.readLine()); 원리 생성자에 입력되는 매개변수(String 자료형)를 구분자(= delimeiter, 디폴트값 : 공백 )로 나눠서 저장 공백을 기준으로 토큰을 나눠서 저장 배열처럼 특정 인덱스의 토큰은 못 찾는다. 대표 메서드 nextToken() : 공백으로 토큰을 나누고, 다음 토큰을 문자열을 반환 countTokens() : 토큰 개수, 단 구분자가 아닌 공백을 기준 토큰의 수만 센다 hasMoreTokens() : 토큰이 있는지, 없는지 확인 nextToken("구분자-delimiter") : 토큰을 구분자를 기준으로 나누고, 다음 토큰을 문자열로 반환 (◎주의 : 구분자는 String 자료형이기 때문에 [ ..
메타데이터 에러 errormassage에서 metadata가 없다는 에러가 나오면 삭제했던(람다의 Layer에 등록하려고 용량을 줄이기 위해 삭제했던) dist-into폴더를 복원해야 한다. 패키지 메타데이터가 dist-info폴더에 있기 때문이다. 패키지 내에 함수 찾을 수 없는 에러 이 경우 일단 패키지를 뜯어본다. 해당 함수가 제대로 존재하고 있다면 문제는 패키지의 환경설정 문제로 레이어에 등록이 잘못된 경우이다. "python"폴더에 install하고 그대로 압축해줘야 하며 압축할 때는 현재 macos를 사용중이라면, 설정을 위해 cli 명령어를 사용해서 압축해줘야 한다. 아래 명령어 예시 ( 실행 위치는 압축할 "python" 폴더가 있는 위치 ) zip -r -X python.zip pytho..
문제 핵심 포인트 1. 문제 단계 제목인 브루트 포스 알고리즘 2. 브루트 포스 알고리즘에 따라 모든 경우의 수를 다 확인하면 그중에 하나는 문제의 조건을 만족하는 결과라고 가정 코드 설명 1. 3kg , 5kg 봉투의 모든 조합을 확인하기 위해 2중 반복문 2. bag3를 외부,bag5를 내부 반복자로 연결 -> 3kg보다 5kg봉투를 더 많이 사용하는 경우부터 확인하기 위해(5kg를 더 많이 사용해야 최소봉투의 개수가 되기 때문에) 3. 가장 먼저 찾은 경우가 최소봉투의 개수이기 때문에 찾은 즉시 바로 2중 반복문을 탈출 4. 만약 존재하지 않을 경우 -1을 출력하는 조건문 사용 import java.io.*; import java.util.StringTokenizer; public class Mai..
문제 핵심 포인트 1. 문제 단계 제목인 브루트 포스 알고리즘 순서 1. 전체 보드 입력 2. 전체 보드에서 부분보드(8x8)를 전체 탐색 3. check함수 = 부분보드를 인자로 받아서 일반체스판과 일치하는 사각형이 얼마나 있는지 확인하는 함수 4. 모든 부분보드를 반복문을 돌면서 check함수에 인자로 전달 5. 반환값들 중에 가장 큰 반환값을 이용해서 정답 출력 import java.io.*; import java.util.StringTokenizer; public class Main { static int check(char[][] subBoard){ int countW=0; int countB=0; String[] W = new String[8]; String[] B = new String[8]..
문제 핵심 포인트 1. 문제를 이해하는 것 부터 힘들다. 2. 숨은 조건을 찾아내기 일단 아래에 중요한 부분을 표시해봤다. 여기서 O(n)정의를 만족하는지를 물었으니 O(g(n))의 g(n)은 n이 된다. + 문제조건 1. a1,a0 = 양수,음수 가능 2. c,n0 = 양수 이 정보들을 바탕으로 부등식을 써보자 a1*n0 + a0 ≤ c*n0 이 부등식을 조건문으로 사용해서 문제를 제출해보자. 정답인 것 같다. import java.io.*; public class Main { public static void main(String[] length) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(Syst..
문제 핵심 포인트 1. BigO 표기법으로 봤을때 몇차수인가 2. 표시된 코드가 얼마나 반복되는가 3. 자료형 범위가 맞나 MenOfPassion(A[], n) { sum
문제 핵심 포인트 굉장히 큰 크기(long보다 큰)의 int를 어떻게 계산할 것인가? 방법1. BigInteger 클래스 사용 import java.math.BigInteger; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); BigInteger big1 = scan.nextBigInteger(); BigInteger big2 = scan.nextBigInteger(); System.out.println(big1.add(big2)); } } 방법2. 배열을 이용해서 계산 (아래 코드에서 BufferWriter를 사용할 때 주의할 ..
API개념을 공부하기 위해 자료를 찾아봤는데, 많은 자료에서 API는 메뉴판이라는 비유로 설명을 하고 있었다. 메뉴판이라는 비유가 API라는 개념에 처음 접근하기에 친숙하고 가벼우면서도, 뭔가 개인적으로는 머리에 막 와닿지는 않았다. 이참에 많이 알려진 설명들에 내가 공부하면서 이해한 내용을 추가해서 정리해보려 한다. API란? 사전적인 정의 서로 다른 프로그램들 사이에서 데이터를 주고받기 위한 방법 , 애필리케이션에서 데이터를 읽거나 쓰기 위해 사용하는 인터페이스 설명 식당가서 요리사한테 , “ 야채 썰고 , 기름에 넣어서 야채기름 낸 다음 , 고기 썰어서 같이 볶고 , 마지막으로 밥 넣고 볶아서 가져와주세요” 라고 하진 않는다. 그냥 [메뉴판]을 보고 종업원에게 “[볶음밥] 주세요” 하지 여기서 [메..