Loading...

[Java]자바 HashMap 문제 풀면서 HashMap 이해력 높이기 1편

1. 매우 큰 범위의 배열이 필요할때 서로 다른 6개의 숫자가 주어진 뒤 끝에 숫자 k가 주어졌을 때, 숫자 k가 몇 번째로 주어졌는지를 판단하는 프로그램을 작성해보세요. 단, 주어지는 숫자의 범위는 -10^9 ~ 10^9 사이입니다. 예를 들어 [-656, 234, 65756344, 7678678, 123123, 567567567] 에서 k가 65756344라면, 3번째로 주어진 숫자이므로 답은 3이 됩니다. 이런 경우 -10^9에서 10^9을 모두 담는 배열을 선언하기에는 메모리가 부족하다 하지만 필요한 숫자는 6개밖에 안된다. 그래서 이럴때 필요한 자료구조가 HashMap HashMap은 (key,value)형태로 데이터를 저장하며, key의 범위는 정의하기 나름이고, 사용되는 메모리 공간이 전체 ..

2023. 3. 18. 21:29

SQL 코딩테스트 복기 - 알파벳으로 시작하는 데이터 추출하는 방법(정규표현식)

알파벳 ABCDEFGHIJKLMNOPQRSTUVWXYZ 중 하나나 abcdefghijklmnopqrstuvwxyz중 하나로 시작하는 데이터를 찾으라하면 어떻게 해야할까 WHERE (column) like "A%"; 이러면 (column)이 A나 a로 시작하는 모든 행을 조회해준다. 그러면 WHERE (column) like "A%" or (column) like "B%" or (column) like "C%" or (column) like "D%" or (column) like "E%" or (column) like "F%" or (column) like "G%" or(column) like "H%" or (column) like "I%" or (column) like "J%" or(column) lik..

자바 초보부터 B형까지 - 자바에서 정렬을 하는 기본적인 방법들 -

1. Arrays.sort() import java.util.Arrays; Arrays.sort(arr)은 배열 arr을 오름차순 정렬 import java.util.Arrays; public class Main{ public static void main(String[] args){ int[] arr = new int[]{12,41,37,81,19,25,60,20}; Arrays.sort(arr); for(int i = 0; i < 8; i++){ System.out.print(arr[i] + " "); //12, 19, 20, 25, 37, 41, 60, 81 } } } 2. 부분정렬 특이하게 구간 인덱스를 명시하면 해당 구간만 정렬해줄 수도 있다 Arrays.sort(arr,시작 index, 끝 i..

문자열 비교 응용 - 다시 처음부터 되돌아가면서 비교해야할때

1. 문제 5555번: 반지 (acmicpc.net) 5555번: 반지 당신은 N개의 반지를 가지고 있다. 각각의 반지는 대문자 10 문자로 이루어진 문자열이 새겨져 있다. 반지는 문자열의 시작과 끝이 연결된 형태로 문자가 새겨져 있다. 반지에 각인된 문자열을 www.acmicpc.net 2. 풀이 보통 target 문자열 찾을때는 한줄 안에서 똑같이 있는지 찾았지만 이 문제는 target 문자열이 뒤로 넘어가면 다시 처음부터 되돌아가야한다 ZAAAAAAAXY에서 XYZ를 찾고자 할때, Z XY 하면 하나를 찾을 수 있다는 뜻 어떻게 할 수 있을까 찾고자 하는 문자열 XYZ의 길이가 3이고 처음부터 끝까지 순회하는데... ZAAAAAAAXY XYZ에 도달하면 끝인데.. 여기서 YZ는 다시 처음 2글자 Z..

2023. 2. 26. 23:43

자바 초보에서 B형까지5 -문자열 필수지식-

1. 공백이 없는 문자열 입력받기 문자열의 타입은 String이고 공백이 없는 문자열은 sc.next()로 입력받을 수 있다. import java.util.Scanner; public class Main { public static void main(String[] args) { // 여기에 코드를 작성해주세요. Scanner sc = new Scanner(System.in); String s = sc.next(); System.out.println(s); System.out.println(s); } } 문자열은 각각 원소에 대한 참조로 charAt(index) 형태로 참조 가능하다. 첫번째 문자를 참조할려면 charAt(0)이다. 그래서 문자 하나를 가지고 올때 sc.next().charAt(0); ..

2023. 2. 21. 03:22

자바 초보에서 알고리즘 B형까지 도전기2 -사칙연산, 조건문 필수지식-

1. 나눗셈 연산의 몫과 나머지 나머지는 %연산으로 구할 수 있지만 몫을 구하는 연산은 python과는 다르게 따로 존재하지 않는다 몫을 구할려면 나눗셈 결과 a/b를 int형 변수에 저장하면 된다 1-1) 형변환에 주의 첫번째 (double)a / b는 a를 double로 바꾼 9.0을 4로 나눈 2.25를 내놓지만 (double) (a/b)는 a/b 결과인 2를 double로 바꾼 2.0을 내놓는다. 그런데 a/b 결과가 왜 2냐고? 정수 a,b끼리의 나눗셈 / 연산은 실수가 아니라 정수로 내놓는다. 나눗셈 연산에서 두 항이 모두 정수형이면 / 연산 결과는 정수형(몫)이 나온다. public class Main { public static void main(String[] args) { int a =..