Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions 0602/Programmers/Lv1/예산_kim.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@

import java.util.Arrays;

public class 예산_kim {
public static void main(String[] args) {
int[] d = {2,2,3,3};
int budget = 10;

Arrays.sort(d); // 오름차순으로 정렬
int sum = 0;
int idx = 0;
while(idx<d.length) {
sum += d[idx];
if(sum > budget) { // 부서별 신청금액의 합이 예산보다 크면 멈춤
break;
}
idx++;
}
System.out.println(idx);
}

}
20 changes: 20 additions & 0 deletions 0602/Programmers/Lv1/폰켓몬_kim.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@


import java.util.HashSet;
import java.util.Set;

public class 폰켓몬_kim {
public static void main(String[] args) {
int[] nums = {3,3,3,2,2,2};
Set<Integer> set = new HashSet<>(); // 중복 제거해서 set에 저장
for(int i = 0; i < nums.length; i++) {
set.add(nums[i]);
}
if((nums.length/2) > set.size()) {
System.out.println(set.size());
}else {
System.out.println(nums.length/2);
}
}

}
39 changes: 39 additions & 0 deletions 0602/Programmers/Lv2/오픈채팅방_kim.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Programmers_Lv2_오픈채팅방 {
public static void main(String[] args) {
String[] record = {"Enter uid1234 Muzi", "Enter uid4567 Prodo","Leave uid1234","Enter uid1234 Prodo","Change uid4567 Ryan"};
String[][] records = new String[record.length][3]; // [0]: 출입, 수정 , [1]: 아이디 , [2]: 닉네임
Map<String, String> map = new HashMap<>(); // 해쉬맵 생성
for(int i = 0; i < records.length; i++) {
String a = record[i];
records[i] = a.split(" ");
if(records[i][0].equals("Leave")) {
continue;
}
// map에 아이디를 키로 닉네임을 value로 저장해서 change일 때 자동으로 닉네임 바뀜
map.put(records[i][1], records[i][2]);
}
List<String> list = new ArrayList<>(); // 메세지 저장할 리스트
for(int i = 0; i < records.length; i++) {
if(records[i][0].equals("Enter")) {
list.add(map.get(records[i][1])+"님이 들어왔습니다.");
}else if(records[i][0].equals("Leave")) {
list.add(map.get(records[i][1])+"님이 나갔습니다.");
}
}
//ans 배열에 list 값 옮겨 담아서 반환
String[] ans = new String[list.size()];
for(int i = 0; i < list.size(); i++) {
ans[i] = list.get(i);
}
System.out.println(Arrays.toString(ans));

}

}
51 changes: 51 additions & 0 deletions 0602/Programmers/Lv2/카카오프렌즈컬러링북_kim.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@


import java.util.Arrays;

public class Programmers_Lv2_카카오프렌즈컬러링북 {
static int[] dr = { -1, 1, 0, 0 };
static int[] dc = { 0, 0, -1, 1 };
static boolean[][] visited;
static int max;
static int fill;

public static void main(String[] args) {
int m = 6;
int n = 4;
max = 0; // 최대로 칠한 칸 수
int count = 0; // 영역 수
visited = new boolean[m][n];
int[][] picture = { { 1, 1, 1, 0 }, { 1, 2, 2, 0 }, { 1, 0, 0, 1 }, { 0, 0, 0, 1 }, { 0, 0, 0, 3 },
{ 0, 0, 0, 3 } };

for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
if (picture[i][j] != 0 && !visited[i][j]) { // 0이 아니고 방문하지 않았다면
fill = 0; // 색칠한 칸의 수 체크 할 변수
check(picture, i, j);
count++; // 영역 수 증가
max = Math.max(max, fill); // 최대로 칠한 칸 수 max에 비교해 저장
}
}
}
int[] ans = new int[2];
ans[0] = count; // 영역 수
ans[1] = max; // 최대로 칠한 칸의 수
System.out.println(Arrays.toString(ans));

}

private static void check(int[][] picture, int r, int c) {
visited[r][c] = true;
fill++; // 현재 색칠한 칸의 수 증가
for (int d = 0; d < 4; d++) {
int nr = r + dr[d];
int nc = c + dc[d];
if(nr >= 0 && nr < picture.length && nc >= 0 && nc < picture[0].length) {
if(!visited[nr][nc] && picture[r][c]==picture[nr][nc]) {
check(picture, nr, nc);
}
}
}
}
}