분류 전체보기(109)
-
String, StringBuilder, StringBuffer
String > String은 두 가지 방법으로 값을 할당합니다. 1. 리터럴로 값을 할당 2. new 키워드로 값을 할당 String s1 = "123456"; // 리터럴로 값 할당 String s2 = "123456"; // 리터럴로 값 할당 String s3 = new String("123456"); // new 키워드로 값 할당 String s4 = new String("123456"); // new 키워드로 값 할당 위와 같이 각각 s1, s2, s3, s4변수에 값을 할당하였다고 했을 때 메모리 영역에서는 아래와 같이 나타납니다. 1. 리터럴로 값을 할당하는 경우 힙영역 안 StringPool이라는 공간에 객체가 생성되고 같은 리터럴로 할당한 변수는 같은 공간을 가리킵니다. 2. new 키워..
2022.07.21 -
brute force
brute force '무식하게 푼다(brute-force)'는 컴퓨터의 빠른 계산 능력을 이용해 가능한 경우의 수를 일일이 나열하면서 답을 찾는 방법을 말합니다. 이렇게 가능한 방법을 전부 만들어 보는 알고리즘들을 가리켜 흔히 완전 탐색(exhaustive search)라고 부릅니다. + 프로그래밍 대회에서 대부분의 사람들이 가장 많이 하는 실수는 쉬운 문제를 어렵게 푸는 것입니다. 문제를 마주하면 가장 먼저 무식하게 풀 수 있는 지 생각 해보는 것도 좋은 방법입니다. 재귀호출과 완전 탐색 재귀 호출 (recursion) 재귀함수 (recursive funciton): 자신이 수행할 작업을 유사한 형태의 여러 조각으로 쪼객 뒤 그 중 한 조각을 수행하고, 나머지를 자기 자신을 호출해 실행하는 함수입니다..
2022.07.19 -
정렬(Sort)
문자열 배열 알파벳 순으로 정렬 참조: https://www.delftstack.com/ko/howto/java/sort-string-srray-alphabetically-in-java/ compareTo() 메소드 사용 string1.compareTo(string2); string1 > string2인 경우: 양의 정수 반환 string1 time complexity: O(nlogn) 오름차순 정렬(default) Arrays.sort(arrToSort); // Apple Bananamna apple banana 내림차순 정렬 Arrays.sort(arrTo..
2022.07.19 -
객체 지향 vs 절차 지향 프로그래밍
절차 지향 프로그래밍 vs 객체 지향 프로그래밍 절차 지향 프로그래밍: 코드를 순차적으로 구성하여 프로그래밍 하는 것 장점: 코드의 흐름이 보여 직관적이고 빠릅니다. 단점: 모든 코드들이 유기적으로 연결되어 있어 코드 수정 및 유지보수가 어렵습니다. 객체 지향 프로그래밍: 코드를 객체 단위로 나누어 구성하여 프로그래밍 하는 것. 장점: 유지보수가 쉽고, 코드의 재사용성이 높습니다. 단점: 절차지향 프로그램에 비해 느리고, 클래스를 구성하는데 시간이 오래 걸린다. 클래스 and 객체 클래스: 객체를 정의해 놓은 것 객체: 실제로 존재하는 것. 사물 또는 개념 제품 설계도 제품 TV 설계도 TV 붕어빵 기계 붕어빵 + 객체와 인스턴스 > 객체(Object) 는 인스턴스(instance)를 포함하는 일반적인 ..
2022.07.18 -
JVM
0. 들어가기 앞서 기계와 사람의 언어는 다릅니다. 프로그래머가 프로그램 코드를 작성 한다고 할 때, 0과 1만 해석 가능한 컴퓨터가 사람의 언어로 작성된 코드 자체를 이해하기란 불가능합니다. 따라서 프로그래머의 코드를 컴퓨터가 이해 가능한 기계어로 컴파일 해주어야 합니다. 1. JVM? > Java 이전의 언어, 즉, C / C++에서는 컴파일 플랫폼과 타겟 플랫폼이 다를 경우, 프로그램이 동작하지 않았습니다. > 즉, 윈도우에서 컴파일한 실행코드가 리눅스 환경에서는 동작하지 않았습니다. 이는 코드가 운영체제에 종속적라는 뜻입니다. > 동일한 플랫폼에서 컴파일과 실행을 같이 한다면, 프로그램은 아무 문제 없이 동작합니다. > 문제는 배포를 할 때 발생합니다. 플랫폼이 달라질 경우 프로그램은 동작하지 않..
2022.07.18 -
[백준] 10757번 - 큰 수 A + B
문제로 가는 링크: https://www.acmicpc.net/problem/10757 등급: 브론즈5 알고리즘 분류: 수학, 구현, 사칙연산, 임의 정밀도/ 큰 수 연산 시간 제한메모리 제한제출정답맞힌 사람정답 비율 1 초 256 MB 65123 29345 25498 48.581% 문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 A와 B가 주어진다. (0 < A,B < 10^10000) 출력 첫째 줄에 A+B를 출력한다. 문제 이해 A와 B의 범위는 long의 범위인 2^63-1을 훨씬 초과한다. 따라서 기본 타입의 의존해서는 문제 풀이에서 오버플로우가 발생하게 된다. Java 의 java.math.BigInteger에서는 BigInteger라는 클래스..
2022.07.12