본문 바로가기

알고리즘 정리

(12)
java 자료구조(스택, 큐, 데큐) ArrayList VS LinkedListArrayList:내부적으로 동적 배열을 사용하여 데이터를 저장한다.메모리 상에 연속된 공간에 데이터를 저장하므로 인덱스를 사용한 접근 속도가 빠르다.LinkedList:내부적으로 이중 연결 리스트로 데이터를 저장한다.각 요소는 노드로 구성되어 있으며, 각 노드는 데이터와 다음 및 이전 노드를 가리키는 포인터를 포함한다.메모리 상에 비연속적으로 데이터를 저장할 수 있다.LinkedList는 Deque, Queue, List 인터페이스 모두 구현LinkedList 대신 ArrayList를 사용할 수도 있지만, 삽입/삭제가 많은 경우 LinkedList가 유리하다. 선형자료구조스택(Stack) 큐(Queue) 덱(Deque) 우선순위큐(PriorityQueue) 원형..
코테 개념(getNumericValue, split함수) 문자열의 마지막 위치에 있는 숫자를 출력할 경우int result = Integer.parseInt(S.substring(S.length()-1);이렇게 구현하면 쉽지만, int 의 범위(-2,147,483,648에서 2,147,483,647)를 넘어가는 값을 구할 수 없다.그러므로 큰 값도 구해야 한다면 getNumericValue를 사용해야 한다.int result = Character.getNumericValue(S.charAt(S.length()-1));  다음과 같이 공백으로 문자열을 구분해야 한다면knuth morris prattScanner를 쓰는 것이 편하지만 만약 BufferedReader 클래스를 사용하고 싶다면split(" ") 함수를 사용한다.BufferedReader br = n..
코테 개념(nextLine 입력, StringTokenizer 입력) 다음과 같이 입력 받았을 때 int 형의 이중배열로 처리하는 방법51405444250020325120452212(scanner를 사용했을 때) int N = scanner.nextInt(); int[][] arr = new int[N][N]; scanner.nextLine(); // 버퍼 비우기 for (int i = 0; i    성능 향상을 위해 BufferedReader와 StringTokenizer를 사용해 문자열을 숫자로 변환시키는 방법10 1238099084 16 4100112380990844다음과 같이 입력을 받았을 때 public class Solution { static int N; static List lis..
코테 개념(LinkedList, Math함수) LinkedList 생성List list = new LinkedList(); list에 값 추가&삭제&불러오기list.add(x);list.remove(x);ist.get(x); list크기list.size() ArrayList와 LinkedList 차이?ArrayList:내부적으로 동적 배열을 사용하여 데이터를 저장한다.메모리 상에 연속된 공간에 데이터를 저장하므로 인덱스를 사용한 접근 속도가 빠르다.LinkedList:내부적으로 이중 연결 리스트로 데이터를 저장한다.각 요소는 노드로 구성되어 있으며, 각 노드는 데이터와 다음 및 이전 노드를 가리키는 포인터를 포함한다.메모리 상에 비연속적으로 데이터를 저장할 수 있다.LinkedList 대신 ArrayList를 사용할 수도 있지만, 삽입/삭제가 많은 ..
코테 개념(문자열 수정, 진법 바꾸기) String 문자열 수정-> 그냥 수정하면 안됨. 리터럴이라서StringBuilder 사용해서 수정하는 법StringBuilder 형의 객체 sb 생성하고 sb.setCharAt(int, char) 함수로 int번째의 문자를 char문자로 교체한다.마지막에 str = sb.toString(); 하면 완료substring(int,int) 사용 문자열을 교체할 문자 앞과 뒤의 부분으로 분할하는 방법. 예를들어 str = str.substring(0,6) + ‘-‘ + str.substring(7); //0부터 6전까지, 6수정하고 7부터 끝까지toCharArray 사용 주어진 문자열을 문자 array로 변환String str 문자열이 있다고 할때, char[] chars = str.toCharArray();..
[baek] 공부 기록(java) 10988. 팰린드롬인지 확인하기import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); String S = scan.next(); boolean isTrue = true; for(int i=0; i 1157. 단어 공부import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); String S ..
[swea] 공부기록 day06 1289. 원재의 메모리 복구하기import java.util.Scanner;public class Solution { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int T = scan.nextInt(); for(int i=0; i 10570. 팰린드롭 수import java.util.Scanner;public class Solution { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int T = scan.nextInt(); for(int i=0; i 1217. [S/W 문제해결 기본] 4일차 -..
[swea] 공부기록 day05 D2 마지막 문제1954.  달팽이 숫자 (다른 코드 참고버전) 다시보기★import java.util.Scanner;public class Solution { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int T = scan.nextInt(); for(int i=0; i 순 boolean XMinus = false; boolean YPlus = false; boolean YMinus = false; for(int k=1; k= snail[0].length || (X=snail.length ||(Y=0 && snail[Y][X] != 0)) { X++; Y--;..