목록분류 전체보기 (403)
happy coding
import java.io.*; import java.util.*; import java.lang.*; public class Main { public static void main(String[] args) throws IOException { //첫째 줄에 나무의 수 n 입력 받음, 집은 n+1에 있음 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); int[] arr = new int[n+1]; //둘째 줄에 i에 해당하는 레몬의 개수를 arr에 차례대로 저장 (공백 기준) StringTokenizer st = new StringTokenizer..
import java.io.*; import java.util.*; import java.lang.*; public class Main { public static void main(String[] args) throws IOException { //주어진 수 n BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); int copy = n; int cnt = 0; //최소 1번은 반복문을 돌아야 하니까 do { //n 쪼갠 값 새로운 n에 대입하고 카운트 올리기 n = ((n%10)*10) + (((n/10) + (n%10))%10); cnt++; } w..
import java.io.*; import java.util.*; import java.lang.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //첫째 줄에 수의 개수 n과 합을 구해야 하는 횟수 m 입력 받음, 공백 기준 StringTokenizer first = new StringTokenizer(br.readLine()); int n = Integer.parseInt(first.nextToken()); int m = Integer.parseInt(first.nextT..
import java.io.*; import java.util.*; import java.lang.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // 단어 입력 받기 > 길이는 100을 넘지 않고 소문자로 이루어짐 String word = br.readLine(); // 알파벳 넣을 맵 생성 Map position = new HashMap(); /* 각각 알파벳이 처음 등장하는 위치를 공백으로 구분해 출력 포함되지 않다면 -1, 첫번째 글자 위치는 0 */ // 해당 알파벳..
StringBuilder를 사용하는 이유 문자열 연산은 String 클래스를 사용하면 매번 새로운 문자열을 생성하므로 메모리 낭비와 성능 저하를 초래할 수 있다. 문자열은 불변이라, 새로운 문자열이 생성되면 이전 문자열은 변경할 수 없다. StringBuilder는 가변적인 문자열을 처리하는데 사용되며, 문자열을 직접 수정할 수 있다. 문자열 연산을 수행할 때마다 새로운 객체를 생성하지 않고 기존 객체를 수정하여 메모리를 절약하고 연산 성능을 향상시킬 수 있다. public class StringBuilderExample { public static void main(String[] args) { StringBuilder sb = new StringBuilder(); // 문자열 추가 sb.append(..
map을 사용하는 이유 key-value 쌍으로 데이터를 저장하는 자료구조 hashmap과 같은 map을 사용하면 데이터를 효율적으로 저장하고, 특정 키를 이용하여 빠르게 값을 찾을 수 있다. 키를 기준으로 중복을 허용하지 않기 때문에 고유한 키를 사용하여 데이터를 관리할 수 있다. 데이터의 매핑관계를 표현하는데 적합하며, 데이터 검색 및 수정에 용이하다. 특정 순서를 보장하지 않고, key를 통해 값을 검색하고 수정하는 데 사용된다. hashmap을 사용하는 이유 검색과 삽입 연산이 평균적으로 매우 빠르게 이루어진다. > O(1) 데이터를 빠르게 찾고 업데이트하는데 용이하며, 많은 데이터를 효율적으로 관리할 수 있다. 데이터를 해시 테이블에 저장하여 key와 value를 연결한다. 특정 순서를 보장하지..
백준을 풀다가 범위를 생각없이 무조건 int로 설정했다가 서브태스크에서 점수가 조각나는 경험을 했다. 다음부터는 범위를 생각해서 자료형을 선언해야겠다. 다시 이 부분에 대해서 생각해볼 계기가 된 것 같다. 타입 변환, 형변환 : 하나의 타입을 다른 타입으로 바꾸는 것 메모리에 할당받은 바이트의 크기가 상대적으로 작은 타입에서 큰 타입으로의 타입 변환은 생략할 수 있다. 강제 형변환 = 명시적 형변환 > 사용자가 타입 캐스트 연산자를 사용해서 값의 타입을 강제적으로 변환하는 것 강제 형변환의 문제점인 데이터 손실을 방지하기 위해, 모든 기본 타입에 대해 최대값과 최소값을 상수로 제공하고 있다. 기본 타입 최대값 상수 최소값 상수 byte Byte.MAX_VALUE Byte.MIN_VALUE short Sh..
import java.io.*; import java.util.*; import java.lang.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //첫째 줄에 결과를 계산할 정수 5개 입력 받기 StringTokenizer st = new StringTokenizer(br.readLine()); int a = Integer.parseInt(st.nextToken()); int b = Integer.parseInt(st.nextToken()); int c = Integer.p..