Java 6

[BOJ] 나이순 정렬 10814.java

준비 겸, JAVA Stream에 익숙해지기 위해. 문제 https://www.acmicpc.net/problem/10814 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 www.acmicpc.net 나이 - 이름으로 입력 받았을 때, 나이 순으로 정렬하고, 같은 경우 입력 순서대로 정렬한다. 해설 및 코드 public class 나이순정렬 { public static class User{ int age; String name; User(int a, String n){ this.age = a; this.name = n; } public int..

IT/알고리즘 2022.05.25

[Java] Lambda expression

Lambda expression 익명함수, 메서드를 하나의 식(expression)으로 표현한 것 - 자바8(JDK1.8) 버전부터 도입 - 함수형 언어 람다식 작성 - 메서드에서 이름과 반환타입 제거 - 매개변수 선언부와 몸통{} 사이에 -> 추가 // 기존 함수 int max(int a, int b){ return a > b ? a : b; } // 람다식 (int a, int b) -> { return a > b ? a : b; } //return 형이 존재한다면 {}를 뺄 수 없음 (a, b) -> a > b ? a : b; // 기존 함수 int sum(int[] arr){ int sum = 0; for(int i : arr) sum += i; return sum; } // 람다식 (int[] ..

IT/CS 2021.09.28

[프로그래밍 언어] C++과 JAVA

C++이란 C언어를 확장하여 만든 객체지향 프로그래밍 C언어의 대부분 특징을 포함하고 있어 시스템 프로그래밍에 적합하다. 클래스, 연산자 중복, 가상함수 등과 같은 특징을 가지고 있다. C++ 프로그램의 작성 및 빌드 - 소스파일: C++로 작성한 프로그램을 담은 파일, C++ 소스(.cpp, .cxx, .c)와 C++ 헤더 파일(.h)로 이루어짐 - 작성단계 1. 프로그램 작성 (.cpp) 2. 컴파일 (.obj) 3. 링크 (.obj 파일 연결) 4. 실행 파일 (.exe) 5. 실행 JAVA란 https://helloworld-88.tistory.com/3 C/C++ 스타일의 언어와 가상 머신을 구현한 것으로, Write Once, Run Anywhere을 목표로 작성된 객체지향 프로그래밍 JAVA..

IT/CS 2021.05.30

[Java] String vs StringBuilder vs StringBuffer

String - 불변: 한 번 만들어진 메모리는 변하지 않음 - 조회 연산이 빠름 - 문자열 연산 시 힙 부족, 객체 생성 시 오버헤드 발생 리터럴로 생성 String st = "Hello"; ✔ Heap 영역에 존재하는 String Pool이 객체에 메모리 할당 ✔ String Pool은 Hash Table과 같은 역할 // st와 st2의 메모리는 같다. // String Pool에서 Hello가 담긴 위치의 메모리를 가지기 때문 String st_hello = "Hello"; ✔ + 연산 시, 새로운 메모리를 할당한다. st += " Wolrd"; // st == "Hello World" // 새로운 메모리에 Hello World가 적재된다. > 기존 Hello는 더 이상 가리키는 메모리가 없으므로..

IT/CS 2021.04.28

[Java] Java란?

Java 특징 1. 운영체제에 독립적 - JVM(자바 가상 머신): 자바 응용 프로그램 -> JVM -> 운영체제 > JVM이 명령어를 운영체제가 이해할 수 있도록 변환 - JVM은 운영체제에 종속적 "Write once, run anywhere" 2. 객체지향언어 - 상속, 캡슐화, 다형성 3. 비교적 배우기 쉬움 4. 자동 메모리 관리(Garbage Colleciton, GC) - 프로그래머가 메모리 관리 할 필요가 없음 - 다소 비효율적일 수 있으나, 프로그래머가 프로그래밍에 집중할 수 있도록 도와줌 5. 네트워크와 분산처리 지원 - Java API를 통해 짧은 시간에 네트워크 관련 프로그램을 쉽게 개발 할 수 있도록 지원 6. 멀티쓰레드 지원 - 시스템과 관계없이 구현 가능 - 관련된 라이브러리 ..

IT/CS 2021.04.12

[BOJ] 배열돌리기1_16926.java

문제 - 구현의 기본적인 문제 - 반시계방향으로 배열의 각 원소를 하나씩 옮긴다. - R번 회전한다. 해설 및 코드 배열 회전 문제를 구현할 때, 그냥 보이는 대로 푸는 경우가 많다. -> 복잡성이 증가한다. 내가 구현한 배열 회전은 2개의 temp를 임시저장해서 사용했다. 완전히 같은 문제는 아니지만, 배열 돌리는 문제를 부딪치면서 푼 방법이다. int stx = queries[i][0]; int sty = queries[i][1]; int min = Integer.MAX_VALUE; int endx = queries[i][2]; int endy = queries[i][3]; int back = map[stx][endy]; for (int j = endy; j > sty; j--) { min = Mat..

IT/알고리즘 2021.04.09