본문 바로가기
728x90
반응형

분류 전체보기82

[Java] JDK & JRE & JVM JDK - 자바 개발 도구 - JRE + 개발을 위해 필요한 도구(javac, java 등)을 포함. 더보기 javac java 파일을 bytecode로 컴파일. 컴파일 된 파일은 .class 파일로 저장됨. java jvac 명령어로 컴파일한 .class 파일을 실행시킬 수 있음. JRE - 자바 실행환경 - JVM이 자바 프로그램을 동작시킬 때 필요한 라이브러리 파일, 기타 파일을 가짐. - 운영체제 위에서 실행되며, 거의 모든 운영체제에서 코드 수정 없이 실행될 수 있도록 함. - JRE가 자바 애플리케이션을 실행할 수 있도록 해주므로 보통 자바로 개발된 프로그램들은 JRE를 포함하여 배포함. JVM - 자바 소스코드로 만들어지는 자바 바이너리 파일(.class)를 실행 - 자바 가상 머신 - 자바.. 2021. 5. 25.
[algorithm] 백준 - 낚시왕 삼성 SW기출 문제이자 시뮬레이션이며, 시간 제한이 1초라는 것을 유의해야한다 상어의 크기는 모두 다 다르다는 특징이 있다. 격자의 크기는 R,C 상어의 수 m, 상어 위치 r,c 속력 s ,이동방향 d, 크기 z이다. 낚시왕이 1번열의 한칸 왼쪽에 있다. 가장 오른쪽 열에 위치하면 이동을 멈춘다. 1초 동안 아래 연산이 이루어진다. 1. 낚시왕이 오른쪽으로 한칸 이동한다. 낚시왕이 낚시를 끝낼 때까지 연산이 이루어져야하므로 while문 안에서 아래의 작업을 수행한다. int king = 0, answer = 0; while(king != C){ king++; answer += catchShark(king); moveShark(); eatShark(); } 2. 낚시왕이 위치해있는 열에서 가장 가까운 상.. 2020. 12. 29.
[algorithm] 백준 - 이차원 배열과 연산 삼성 SW 기출문제이자 시뮬레이션 문제다. 이 문제를 풀면서 깨달은 것은 시뮬레이션 문제는 반드시 조건을 만족해야한다는 것이다. 그리고 꽤나 길기 때문에 메모하면서 문제를 해결하는 것이 좋다. 1초가 지날 때마다 연산을 해야한다. 정렬하는 연산은 수의 등장 횟수가 커지는 순으로 정렬하고, 그러한 수가 여러개면 수가 커지는 순으로 정렬한다. R연산은 행의 개수가 열의 개수보다 크거나 같을 때 행단위로 정렬한다. C연산은 열의 개수가 행의 개수보다 작을 때 열단위로 정렬한다. 열단위로 정렬해야하는 경우, 벡터를 탐색하면서 열 -> 행 으로 변경하여 정렬한다. //열 2 1 1 2 0 0 1 1 2 1 3 1 3 3 0 0 0 0 //행 2 1 3 -> 정렬 -> 1 1 2 1 3 1 1 1 3 -> 정렬 -.. 2020. 12. 29.
[algorithm] 백준 - 미세먼지 안녕! 이 문제는 삼성 SW 기출 문제이다. 시뮬레이션이다. 총 두가지 연산이 요구된다. 미세먼지 확산 expand() 1. 네방향 확산 인접한 방향에 -1 혹은 칸이 있는지 확인, 있다면 그 쪽은 확산이 안된다. 2. (r,c)에 위치한 값 / 5로 확산된다. 3. (r,c)에는 (r,c)에 위치한 값 - (r,c)에 위치한 값 / 5 * 확산되는 방향 개수로 설정된다. 확산시킬 때 유의할 점은 확산되는 값이 변하기 전 값에서 계산되어야 하므로 원본 값을 변환시키는 것이 아닌 확산되어 더해지는 값과 확산해서 없어지는 미세먼지 값을 따로 저장해두고 원본 값에 반영하는 형태로 구현해야한다. void expand(){ int spreadNum = 0; int weight[50][50]; for(int i = 0; .. 2020. 12. 29.
[algorithm] 백준 - 아기상어 이 문제는 삼성 SW 기출 문제이다. 먹을 수 있는 물고기가 1마리라면, 그 물고기를 먹으러 간다. 먹을 수 있는 물고기가 1마리보다 많다면, 거리가 가장 가까운 물고기를 먹으러 간다. 1. 거리는 아기 상어가 있는 칸에서 물고기가 있는 칸으로 이동할 때, 지나야하는 칸의 개수의 최솟값이다. 2. 거리가 가까운 물고기가 많다면, 가장 위에 있는 물고기, 그러한 물고기가 여러마리라면, 가장 왼쪽에 있는 물고기를 먹는다. 물고기를 잡아먹는 시간을 최소로 해야하므로 bfs로 탐색했다. 가장 위에 있고 가장 왼쪽에 있는 물고기를 먹어야하므로, bfs로 탐색을 한 후 가장 위에 있고 가장 왼쪽에 있는 물고기를 찾아 그 칸으로 이동시킨다. 탐색은 더이상 먹을 물고기가 없을 때까지 반복한다. while(1){ bfs.. 2020. 12. 28.
[algorithm] 백준 - 치킨배달 이 문제는 삼성 SW 기출 문제이다. brute force로 풀었다. 치킨집 중에서 m개를 뽑아서 가정집과 치킨집의 차가 가장 적었을 때 얼마인지 구하는 것이다. 우선 가정집벡터와 치킨집벡터로 나누어 지도를 입력받을 때 값을 넣어준다. for(int i = 0; i > house[i][j]; if(house[i][j] == 2){ chickenVector.push_back({i,j}); } if(house[i][j] == 1){ houseVector.push_back({i,j}); } } } 최대 m개를 뽑아야하므로 m으로 target을 정해 조합으로 풀었다. 최대라고 해서 target에 1부터 m까지 대입시켜 함수를 호출했는.. 2020. 12. 27.
728x90
반응형