전체 글
-
[BOJ] 녹색 옷 입은 애가 젤다지?Algorithm/BOJ 2020. 10. 19. 19:56
[4485] 녹색 옷 입은 애가 젤다지? www.acmicpc.net/problem/4485 Solution 각 동굴의 칸을 정점으로 정의하고, 다익스트라를 활용했다. map의 (0, 0)을 다익스트라의 시작점으로 정하고 (n-1, n-1)칸 까지의 최단 거리를 구했다. 소스코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 8..
-
[BOJ] 치즈Algorithm/BOJ 2020. 10. 19. 14:56
[2636] 치즈 www.acmicpc.net/problem/2636 Solution map의 (0, 0) 위치에서 치즈의 개수가 0이 될 때 까지 bfs 함수를 실행한다. 팀색 중에 치즈의 바깥부분, 1인 부분을 찾으면 map에서 0으로 바꾸고 visited 배열에 방문표시를 해준다. 한 번의 bfs 탐색마다 1씩 증가하는 시간을 answer 변수에 담고, 마지막 치즈 개수는 count 변수에 bfs 함수가 끝날 때 마다 업데이트 한다. 소스코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 5..
-
[BOJ] 후보 추천하기Algorithm/BOJ 2020. 10. 4. 16:05
[1713] 후보 추천하기 www.acmicpc.net/problem/1713 Solution 문제에서 주어진 조건대로 구현하면 되는 문제 idx, like, order 속성을 가진 Student 객체를 만들어 추천받은 순서 대로 우선순위 큐에 넣었다. 우선순위 큐의 정렬 조건은 like, 추천수가 작은 Student가 먼저 빠져나오고 추천수가 같은 경우에는 order, 들어간 순서가 오래된 Student가 먼저 나오도록 했다. 추천받을 학생이 이미 우선순위 큐에 들어있는 경우에는 해당 학생은 like, 추천수를 업데이트 한 후 다시 넣어줬다. 우선순위 큐에 들어있는 Student를 뽑지 않고 큐 들어있는 상태에서 like를 업데이트 하면 큐의 정렬 조건에 반영되지 않으므로 모든 Student 객체를 뽑..
-
-
[Java] Java는 Call By Value !!!!Programming/Java 2020. 9. 16. 20:29
Call by value 값에의한 호출, 메서드로 인자값을 넘길 때 그 값을 복사하여 넘기는 형태이다. 따라서 메서드 내에서는 복사된 값으로 작업을 하기 때문에 원본 데이터의 값을 변경하지 않는다. Call by reference 참조에 의한 호출, 메서드로 인자값을 넘길 때 그 값을 참조하는 주소를 넘겨주는 형태이다. 따라서, 메서드 내에서도 원본 데이터의 값에 접근이 가능하다. 기본 자료형 Call by value 예제 소스코드 실행 결과 실행 과정 swap 메서드에 넘기는 것은 reference가 아닌 value이기 때문에 원본 데이터의 값은 변하지 않는다. Wrapper class Call by value 예제 소스코드 실행 결과 실행 과정 Integer a = 10; 이라는 코드는 자바 내부적으..
-
[Java] Java 환경변수(JAVA_HOME &CLASSPATH)Programming/Java 2020. 9. 16. 16:11
환경변수 운영체제 위에서 동작하는 응용프로그램이 참조하기 위한 설정 환경변수는 크게 사용자 변수와 시스템 변수로 나눌 수 있다. 사용자 변수는 사용자 별로 다르게 설정 가능한 환경변수 시스템 변수는 시스템 전체에서 공통으로 적용되는 환경변수 Path 시스템변수 Path에는 다양한 경로가 문자열로 저장되어있다. 우리는 cmd창에서 프로그램을 실행할 때 명령어를 사용하는데, 일종의 프로그램이기 때문에 어딘가 저장이 되어있을 것이다. 이 프로그램들을 실행시킬 때 마다 매번 실제 저장된 위치를 입력하기는 힘들것이다. 그래서 특정 프로그램이 저장된 위치를 Path에 미리 저장함으로써 프로그램 명으로 쉽게 실행할 수 있도록 해주는 것이다. 예를 들어, ipconfig가 실제로 저장된 위치는 C:\Windows\Sy..
-
[Java] JDK & JRE & JVMProgramming/Java 2020. 9. 16. 15:22
JDK(Java Development Kit) 표준 자바 플랫폼의 자바 개발 도구는 자바 실행 파일(클래스 파일)로 변환하는 컴파일러(Compiler)와 프로그램 오류를 찾는데 유용한 디버거(debugger)를 제공한다. 그리고 컴파일 변환된 파일을 실행하는 자바 실행 환경(JRE)을 포함한다. JRE(Java Runtime Environment) 자바 실행 환경은 JVM 및 Java 클래스 라이브러리를 제공하는 소프트웨어 패키지이다. 변환된 클래스 파일을 실행하는 JVM의 상위 집합으로 JRE는 JVM의 실행 환경을 구현했다고 할 수 있다. 개발 없이 실행만이 목적이라면 개발된 Java 프로그램만 있다면 JRE만으로도 가능하다. JVM(Java Virtual Machine) 4ngeunlee.tisto..
-
[Java] JVMProgramming/Java 2020. 9. 16. 03:11
JVM(Java Virtual Machine) 일반적인 프로그램은 OS가 프로그램을 실행시킨다. 반면 Java로 쓰여진 프로그램은 OS가 JVM을 실행시키면 JVM이 Byte Code로 컴파일된 java 프로그램을 실행시킨다. 즉, Java 클래스 파일은 OS 위에서 직접 동작하는 것이 아니라 JVM 위에서 동작한다. 윈도우, 리눅스, 맥 등 각각의 OS를 위한 JVM만 설치되어 있다면 어떤 OS라도 Java 프로그램을 실행할 수 있다. 이는 가장 잘 알려져있는 Java 언어의 장점인 플랫폼 독립성에 관한 것이다. 그러나 Java 프로그램은 일반 프로그램보다 한 단계를 더 거쳐야 하므로 상대적으로 실행 속도가 느리다는 단점이 있다. JVM 구성 요소 Class Loader 클래스 로더는 실행할 클래스 파..