Skip to content

Commit 5fc1bb8

Browse files
committed
edit code
1 parent 9b37760 commit 5fc1bb8

File tree

9 files changed

+107
-135
lines changed

9 files changed

+107
-135
lines changed

Week1/공통/달리기경주/jiyoon.java

+2-4
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,8 @@
33
import java.util.Arrays;
44
import java.util.HashMap;
55

6-
public class jiyoon {
7-
public static void main(String[] args) {
8-
String[] players = {"mumu", "soe", "poe", "kai", "mine"};
9-
String[] callings = {"kai", "kai", "mine", "mine"};
6+
class jiyoon {
7+
public String[] solution(String[] players, String[] callings) {
108

119
HashMap<String, Integer> map = new HashMap<>(); // Key : 선수 이름, Value : 등수
1210

Original file line numberDiff line numberDiff line change
@@ -1,33 +1,25 @@
1-
package Week2.공통.가장가까운_같은글자;
2-
3-
public class jiyoon {
4-
class Solution {
5-
public int[] solution(String s) {
6-
boolean[] alphabet = new boolean[26]; // 첫 등장 확인용
7-
int[] answer = new int[s.length()];
8-
9-
for (int i = 0; i < s.length(); i++) {
10-
char c = s.charAt(i);
11-
int n = c - 'a';
12-
13-
if (!alphabet[n]) { // 첫 등장 이라면
14-
answer[i] = -1;
15-
alphabet[n] = true;
16-
} else { // 첫 등장이 아니라면
17-
for (int j = 0; j < i ; j++) {
18-
if (c == s.charAt(j)) {
19-
answer[i] = i - j;
20-
}
21-
1+
class Solution {
2+
public int[] solution(String s) {
3+
boolean[] alphabet = new boolean[26]; // 첫 등장 확인용
4+
int[] answer = new int[s.length()];
5+
6+
for (int i = 0; i < s.length(); i++) {
7+
char c = s.charAt(i);
8+
int n = c - 'a';
9+
10+
if (!alphabet[n]) { // 첫 등장 이라면
11+
answer[i] = -1;
12+
alphabet[n] = true;
13+
} else { // 첫 등장이 아니라면
14+
for (int j = 0; j < i ; j++) {
15+
if (c == s.charAt(j)) {
16+
answer[i] = i - j;
2217
}
23-
}
2418

19+
}
2520
}
26-
return answer;
21+
2722
}
23+
return answer;
2824
}
29-
}
30-
31-
32-
33-
25+
}

Week2/공통/과제진행하기/jiyoon.java

+3-5
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
1-
package Week2.공통.과제진행하기;
2-
31
import java.util.*;
42

5-
class jiyoon {
3+
class Solution {
64
public String[] solution(String[][] plans) {
75
Task[] arr = new Task[plans.length];
86

@@ -75,12 +73,12 @@ public void recursivePop(Stack<Task> stack, Task newTask, int curTime, List<Stri
7573
}
7674
}
7775

78-
static class Task { // 작업을 나타내는 Task 클래스
76+
static class Task {
7977
private String name;
8078
private int start;
8179
private int time;
8280

83-
public Task(String name, String start, String time) { // Task 객체를 초기화하는 생성자
81+
public Task(String name, String start, String time) {
8482
this.name = name;
8583
this.start = timeToMinute(start);
8684
this.time = Integer.parseInt(time);

Week2/공통/광물캐기/jiyoon.java

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
1-
package Week2.공통.광물캐기;
2-
31
import java.util.*;
42

5-
public class jiyoon {
3+
class Solution {
64

75
static class Mineral {
86
private int diamond;

Week2/공통/대충만든자판/jiyoon.java

+19-19
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,43 @@
1-
package Week2.공통.대충만든자판;
2-
31
import java.util.*;
42

5-
public class jiyoon {
3+
class Solution {
64
public int[] solution(String[] keymap, String[] targets) {
75
int[] answer = new int[targets.length];
86

9-
// 자판 정보를 담을 Map(Key : 자판, Value : 자판을 누르기 위해 눌러야 할 횟수)
10-
HashMap<Character, Integer> keyboard = new HashMap<>();
7+
HashMap<Character, Integer> keyboard = new HashMap<>(); // 자판 정보를 담을 Map(Key : 자판, Value : 자판을 누르기 위해 눌러야 할 횟수)
118

129
for (int i = 0; i < keymap.length; i++) { // keyboard에 자판과 횟수 입력
1310
for (int j = 0; j < keymap[i].length(); j++) {
1411
char c = keymap[i].charAt(j);
15-
int index = j + 1;
1612

17-
if (keyboard.containsKey(c)) {
18-
keyboard.put(c, Math.min(index, keyboard.get(c)));
19-
} else {
20-
keyboard.put(c, index);
13+
if (!keyboard.containsKey(c)) { // keyboard에 c값 없으면
14+
keyboard.put(c, j + 1); // keyboard에 문자 값과 문자의 위치(문자를 누르는 횟수) 저장
15+
16+
} else { // keyboard에 c값이 있다면
17+
int now = keyboard.get(c); // 현재 keyboard에 저장된 c의 value값
18+
19+
if (now > j + 1) { // keyboard에 저장된 Value값보다 현재 값이 더 작으면
20+
keyboard.replace(c, j + 1); // 현재 값으로 갱신
21+
}
2122
}
2223
}
2324
}
2425

2526
for (int i = 0; i < targets.length; i++) {
26-
String target = targets[i];
27-
boolean check = false;
27+
char[] arr = targets[i].toCharArray(); // 목표 문자열로 char배열 생성
28+
2829
int count = 0;
30+
for (char c : arr) {
31+
if (keyboard.containsKey(c)) { // keyboard에 문자가 저장되어 있다면,
32+
count += keyboard.get(c); // Value값 더하기
2933

30-
for (char c : target.toCharArray()) { // 입력하려는 문자열로 char배열 생성
31-
if (keyboard.containsKey(c)) {
32-
count += keyboard.get(c);
33-
} else {
34-
check = true;
34+
} else { // keyboard에 저장되지 않은 문자라면
35+
count = -1; // 목표 문자열을 작성할 수 없으므로 -1
3536
break;
3637
}
3738
}
3839

39-
if (check) answer[i] = -1; // 목표 문자열 작성 불가능
40-
else answer[i] = count; // 목표 문자열 작성 가능
40+
answer[i] = count;
4141
}
4242

4343
return answer;

Week2/공통/덧칠하기/jiyoon.java

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
package Week2.공통.덧칠하기;
2-
3-
public class jiyoon {
1+
class Solution {
42
public int solution(int n, int m, int[] section) {
53
int answer = 0;
64

+22-26
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,34 @@
1-
package Week2.공통.둘만의암호;
1+
class Solution {
2+
public String solution(String s, String skip, int index) {
3+
// answer만들 때 사용할 alphabet문자열(skip에 포함된 문자 제외)
4+
String alphabet = "abcdefghijklmnopqrstuvwxyz";
25

3-
public class jiyoon {
4-
class Solution {
5-
public String solution(String s, String skip, int index) {
6-
// answer만들 때 사용할 alphabet문자열(skip에 포함된 문자 제외)
7-
String alphabet = "abcdefghijklmnopqrstuvwxyz";
6+
for (int i = 0; i < skip.length(); i++) {
7+
char c = skip.charAt(i);
88

9-
for (int i = 0; i < skip.length(); i++) {
10-
char c = skip.charAt(i);
11-
12-
// skip에 포함된 문자 제거
13-
alphabet = alphabet.replace(String.valueOf(c), "");
14-
}
15-
16-
String answer = "";
9+
// skip에 포함된 문자 제거
10+
alphabet = alphabet.replace(String.valueOf(c), "");
11+
}
1712

18-
for (int i = 0; i < s.length(); i++) {
19-
char c = s.charAt(i);
13+
String answer = "";
2014

21-
// alphabet에서 s에 포함된 문자의 위치 찾기
22-
int position = alphabet.indexOf(String.valueOf(c));
15+
for (int i = 0; i < s.length(); i++) {
16+
char c = s.charAt(i);
2317

24-
// 이동시킬 위치
25-
int total = position + index;
18+
// alphabet에서 s에 포함된 문자의 위치 찾기
19+
int position = alphabet.indexOf(String.valueOf(c));
2620

27-
// 이동시킬 위치가 alphabet을 넘어간다면('z'를 넘어간다면, 'a'부터 시작)
28-
while (total >= alphabet.length()) {
29-
total -= alphabet.length();
30-
}
31-
answer += alphabet.charAt(total);
21+
// 이동시킬 위치
22+
int total = position + index;
3223

24+
// 이동시킬 위치가 alphabet을 넘어간다면('z'를 넘어간다면, 'a'부터 시작)
25+
while (total >= alphabet.length()) {
26+
total -= alphabet.length();
3327
}
28+
answer += alphabet.charAt(total);
3429

35-
return answer;
3630
}
31+
32+
return answer;
3733
}
3834
}
+19-23
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,29 @@
1-
package Week2.공통.명예의전당_1;
2-
31
import java.util.*;
42

5-
public class jiyoon {
6-
class Solution {
7-
public int[] solution(int k, int[] score) {
8-
int[] answer = new int[score.length];
9-
ArrayList<Integer> list = new ArrayList<>(); // 명예의 전당
3+
class Solution {
4+
public int[] solution(int k, int[] score) {
5+
int[] answer = new int[score.length];
6+
ArrayList<Integer> list = new ArrayList<>(); // 명예의 전당
107

11-
int min = Integer.MAX_VALUE; // 최하위 비교용
12-
for (int i = 0; i < score.length; i++) {
13-
if (i < k) { // k일 전이기에 모든 가수가 명예에 전당에 오름
14-
list.add(score[i]);
8+
int min = Integer.MAX_VALUE; // 최하위 비교용
9+
for (int i = 0; i < score.length; i++) {
10+
if (i < k) { // k일 전이기에 모든 가수가 명예에 전당에 오름
11+
list.add(score[i]);
1512

16-
} else { // k일 이후라면
17-
int num = score[i];
13+
} else { // k일 이후라면
14+
int num = score[i];
1815

19-
if (score[i] > min) {
20-
list.remove(0); // 명예의 전당 최소값 제거
21-
list.add(score[i]); // 명예의 전당 점수 추가
22-
}
16+
if (score[i] > min) {
17+
list.remove(0); // 명예의 전당 최소값 제거
18+
list.add(score[i]); // 명예의 전당 점수 추가
2319
}
20+
}
2421

25-
Collections.sort(list); // 명예의 전당 list 정렬
26-
min = list.get(0); // 명예의 전당 최소값 갱신
22+
Collections.sort(list); // 명예의 전당 list 정렬
23+
min = list.get(0); // 명예의 전당 최소값 갱신
2724

28-
answer[i] = min; // answer에 최하위 점수 추가
29-
}
30-
return answer;
25+
answer[i] = min; // answer에 최하위 점수 추가
3126
}
27+
return answer;
3228
}
33-
}
29+
}
+20-24
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,26 @@
1-
package Week2.공통.문자열나누기;
1+
class Solution {
2+
public int solution(String s) {
3+
int answer = 0;
4+
char x = '0';
5+
int countX = 0; // x 등장 수
6+
int countO = 0; // x와 다른 문자 등장 수
27

3-
public class jiyoon {
4-
class Solution {
5-
public int solution(String s) {
6-
int answer = 0;
7-
char x = '0';
8-
int countX = 0; // x 등장 수
9-
int countO = 0; // x와 다른 문자 등장 수
8+
for (int i = 0; i < s.length(); i++) {
9+
if (x == '0') x = s.charAt(i);
1010

11-
for (int i = 0; i < s.length(); i++) {
12-
if (x == '0') x = s.charAt(i);
13-
14-
if (s.charAt(i) == x) { // x와 동일한 문자가 나왔다면,
15-
countX++;
16-
} else if (s.charAt(i) != x) { // x와 다른 문자가 나왔다면,
17-
countO++;
18-
}
19-
20-
if (countX == countO) {
21-
answer++; // 문자열 분할 개수 추가
22-
x = '0'; // 문자열 초기화
23-
}
11+
if (s.charAt(i) == x) { // x와 동일한 문자가 나왔다면,
12+
countX++;
13+
} else if (s.charAt(i) != x) { // x와 다른 문자가 나왔다면,
14+
countO++;
2415
}
2516

26-
if ((countX - countO) != 0) answer++; // 더 이상 읽을 문자열이 없다면 문자열 분할 개수 추가
27-
return answer;
17+
if (countX == countO) {
18+
answer++; // 문자열 분할 개수 추가
19+
x = '0'; // 문자열 초기화
20+
}
2821
}
22+
23+
if ((countX - countO) != 0) answer++; // 더 이상 읽을 문자열이 없다면 문자열 분할 개수 추가
24+
return answer;
2925
}
30-
}
26+
}

0 commit comments

Comments
 (0)