본문 바로가기

분류 전체보기

(191)
[JAVA 이론] 연산자 연산자란? 연산자는 '연산을 수행하는 기호'를 말한다. 연산자 y = x + 3 연산자(operator): + [연산을 수행하는 기호(+,-,*,/ 등)] 피연산자(operand): x, 3 [연산자의 작업 대상(변수, 상수, 리터럴, 수식)] 식(expression): x + 3 [연산자와 피연산자를 조합하여 계산하고자하는 바를 표현한 것] 대입 연산자: = [변수와 같이 값을 저장할 수 있는 공간에 결과를 저장하기 위해 사용] 연산자의 종류 종류 연산자 설명 산술 +, -, *, /, % 사칙연산과 나머지 연산 비교 ==, !=, >, =, 비교 > 논리 > 대입은 제일 마지막에 수행된다. 단항(1) > 이항(2) > 삼항(3). 단항 연산자의 우선순위가 이항 연산자보다 높다. 단항 연산자와 대입 연..
[JAVA 이론] 변수 변수란? 단 하나의 값을 저장할 수 있는 메모리 공간 변수 선언 int age; 변수타입: int(메모리의 빈공간에 알맞은 크기의 저장 공간이 확보 됨) 변수이름: age(저자공간은 변수이름을 통해 사용할 수 있음) 변수 초기화 int age = 30; 변수를 사용하기 전에 처음으로 값을 지정하는 것, 메모리는 여러 프로그램이 공유하는 자원이므로 전에 다른 프로그램에 의해 저장된 '알 수없는 값(쓰레기값, garbage value)'이 남아있을 수 있기 때문이다. 변수의 명명규칙 '변수의 이름'처럼 프로그래밍에서 사용하는 모든 이름을 '식별자(identifier)'라고 하며, 식별자는 같은 영역내에서 서로 구분(식별)될 수 있어야 한다. 대소문자가 구분되며 길이에 제한이 없다. - True와 true는 ..
[JAVA 이론] 자바 JAVA란? 객체 지향 프로그래밍 언어(1996년 썬 마이크로 시스템즈) 자바 특징 1) 운영체제에 독립적 (JVM을 통해 간접적으로 OS에 접근함) 2) 객체지향 언어 (상속, 다형성, 추상화, 캡슐) 3) 자동 메모리 관리 (가비지 컬렉션) 4) 멀티 쓰레드 (Thread, Runnable) 5) 동적로딩(여러 개의 클래스로 구성된 애플리케이션) JAVA 구성 코드 > 클래스 > JAVA 애플리케이션 JDK의 bin의 주요 실행 파일 1) javac.exe - 자바 컴파일러, 자바소스코드를 바이트코드로 컴파일한다. D:\jdk1.8.0_291\bin> javac Hello.java 2) java.exe - 자바 인터프린터, 컴파일러가 생성한 D:\jdk1.8.0_291\bin> java Hello 3..
[Spring] AOP(Aspect Oriented Programming) AOP AOP는 Aspect Oriente Programming의 약자로, 여러 객체에 공통으로 적용할 수 있는 기능을 분리해서 재사용성을 높여주는 프로그래밍 기법이다. AOP는 핵심 기능과 공통 기능의 구현을 분리함으로써 핵심 기능을 구현한 코드의 수정 없이 공통 기능을 적영 할 수 있게 만들어준다. AOP의 기본 개념은 핵심 기능에 공통 기능을 삽입하는 것이다. 즉 핵심 기능의 코드를 수정하지 않으면서 공통 기능의 구현을 추가하는 것이 AOP이다. 핵심 기능에 공통 기능을 삽입하는 방법에는 다음 세 가지가 있다. 컴파일 시점에 코드에 공통 기능을 삽입하는 방법 클래스 로딩 시점에 바이트 코드에 공통 기능을 삽입하는 방법 런타임에 프록시 객체를 생성해서 공통 기능을 삽입하는 방법 첫 번째 방법은 AOP..
백준 1197_최소 스패닝 트리(JAVA) www.acmicpc.net/problem/1197 1197번: 최소 스패닝 트리 첫째 줄에 정점의 개수 V(1 ≤ V ≤ 10,000)와 간선의 개수 E(1 ≤ E ≤ 100,000)가 주어진다. 다음 E개의 줄에는 각 간선에 대한 정보를 나타내는 세 정수 A, B, C가 주어진다. 이는 A번 정점과 B번 정점이 www.acmicpc.net [문제 풀이] MST를 이용하여 문제를 풀었습니다. 이 문제는 최소 신장 트리 중 Kruskal를 구현하는 문제였습니다. 최소 신장 트리에 관한 내용은 아래 링크에 가시면 자세히 나와있습니다. //현재 수정 중이라 비공개 되있습니다. 빠른 시일 내에 정리하여서 올리겠습니다. steady-life.tistory.com/124?category=788590 코드 설명 먼..
프로그래머스_여행경로(C++) programmers.co.kr/learn/courses/30/lessons/43164 코딩테스트 연습 - 여행경로 [["ICN", "SFO"], ["ICN", "ATL"], ["SFO", "ATL"], ["ATL", "ICN"], ["ATL","SFO"]] ["ICN", "ATL", "ICN", "SFO", "ATL", "SFO"] programmers.co.kr [문제 풀이] DFS를 이용하여 문제를 풀었습니다. 이 문제는 공항을 잇는 경로들이 주어지고 모든 공항을 잇는 경로 중 알파벳 순이 가장 빠른 경로를 찾는 문제입니다. 문제를 푸는 방법은 주어진 경로들을 알파벳 순으로 정렬하여 알파벳 순으로 경로들을 확인하면서 가장 먼저 나오는 경로를 찾는 방법입니다. 코드 설명 tickets 백터를 알파벳 ..
백준 2156_포도주 시식(JAVA) www.acmicpc.net/problem/2156 2156번: 포도주 시식 효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규 www.acmicpc.net [문제 풀이] DP를 이용하여 문제를 풀었습니다. 이 문제는 숫자가 주어 졌을 때 아래와 같은 두 가지 규칙을 이용하여 포도주를 고를 때 최대로 마실 수 있는 포도주의 양을 찾는 문제입니다. 포도주 잔을 선택하면 그 잔에 들어있는 포도주는 모두 마셔야 하고, 마신 후에는 원래 위치에 다시 놓아야 한다. 연속으로 놓여 있는 3잔을 모두 마실 수는 없다. 문제를 푸는 방법은 1 ~ N까지 포도주 양을 확인하며 누적합..
백준 1463_1로 만들기(JAVA) www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net [문제 풀이] DP를 이용하여 문제를 풀었습니다. 이 문제는 숫자가 주어 졌을 때 아래와 같은 세가지 규칙을 이용하여 x가 1로 가는 최소 연산의 횟수가 몇번인지를 찾는 문제입니다. X가 3으로 나누어 떨어지면, 3으로 나눈다. X가 2로 나누어 떨어지면, 2로 나눈다. 1을 뺀다. 문제를 풀기 위하여 DP를 이용하였습니다. 문제에 사용 된 점화 식은 아래와 같습니다. arr[i] = arr[i-1] + 1; if(i % 2 == 0){ arr[i] = Math.min(arr[i], arr[i/2] + 1); } if(i %..