반응형
Preface
최근에 자바 공부에 많은 시간을 투자했지만, 아직도 브론즈 1~실버 5단계 문제를 혼자 힘으로 제대로 해결하지 못하고 구글링을 하거나 GPT에게 질문을 하게 된다.
보통 월요일마다 백준 문제를 푸는데, 하루 종일 한 두 문제도 해결하지 못하는 날도 있다.
물론 문제를 풀었을 때 오는 성취감도 좋지만, 해결하지 못했을 때 받는 스트레스가 나를 너무 괴롭힌다.
스트레스와 짜증은 그렇다 쳐도 자꾸 자신감이 떨어지고 개발 자체에 대한 흥미를 잃게 되는 것 같아 백준 문제풀이는 잠시 쉴 생각이다.
자바 기본서의 마지막장을 업로드한 후 생활코딩에서 자바스크립트 강의를 보고, 이후엔 JSP를 공부할 계획이다.
7월 중순에 정보처리기능사 실기 공부를 하여 시험을 친 이후엔 Spring 강의를 보며 포트폴리오를 위한 다양한 프로젝트를 시작할 것 같다.
아마 프로젝트를 시작할 때쯤부터 다시 코테 준비를 시작하지 않을까 싶다.
1157번은 내가 작성한 코드로 채점했을 때 시간 초과가 발생했다.
이런 저런 방법을 사용해 수정해봐도 문제가 해결되지 않아 GPT의 힘을 빌렸다.
또, 실버 문제부턴 다시 백준 문제풀이를 시작할 때 해결할 생각이다.
https://www.acmicpc.net/step/52
- 10812번
package num6;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;
public class B10812 {
public static void main(String[] args) throws IOException {
BufferedReader bfr = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bfw = new BufferedWriter(new OutputStreamWriter(System.out));
String str = bfr.readLine();
StringTokenizer st = new StringTokenizer(str, " ");
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
int basket[] = new int[N + 1];
int newBasket[] = new int[N + 1];
for (int s = 1; s <= N; s++) {
basket[s] = s;
newBasket[s] = s;
}
String method;
StringTokenizer stt;
int i, j, k;
for (int s = 0; s < M; s++) {
method = bfr.readLine();
stt = new StringTokenizer(method);
i = Integer.parseInt(stt.nextToken());
j = Integer.parseInt(stt.nextToken());
k = Integer.parseInt(stt.nextToken());
int ii = i;
for (int g = 0; g < j - i + 1; g++) {
if (k + g <= j) {
newBasket[g + i] = basket[k + g];
} else {
newBasket[g + i] = basket[ii];
ii++;
}
}
for (int g = 1; g <= N; g++) {
basket[g] = newBasket[g];
}
}
for (int s = 1; s <= N; s++) {
bfw.write(newBasket[s] + " ");
}
bfr.close();
bfw.flush();
bfw.close();
}
}
//
//public class B10812 {
//
// public static void main(String[] args) throws IOException {
//
// BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// StringBuilder sb = new StringBuilder();
// StringTokenizer st;
// String[] input = br.readLine().split(" ");
// int N = Integer.parseInt(input[0]), M = Integer.parseInt(input[1]);
// List<Integer> list = new ArrayList<Integer>();
//
// for (int i = 0; i < N; i++) {
// list.add(i + 1);
// }
//
// int i, j, k;
// for (int a = 0; a < M; a++) {
// input = br.readLine().split(" ");
// i = Integer.parseInt(input[0]);
// j = Integer.parseInt(input[1]);
// k = Integer.parseInt(input[2]);
//
// int val = list.get(i - 1);
// int end = list.get(k - 1);
//
// while (val != end) {
// list.remove(i - 1);
// list.add(j - 1, val);
// val = list.get(i - 1);
// }
// }
//
// for (int a = 0; a < N; a++) {
// sb.append(list.get(a) + " ");
// }
//
// System.out.println(sb);
// }
//
//}
- 25083번
package num6;
public class B25083 {
public static void main(String[] args) {
System.out.println(" ,r'\"7\n"
+ "r`-_ ,' ,/\n"
+ " \\. \". L_r'\n"
+ " `~\\/\n"
+ " |\n"
+ " |");
}
}
- 3003번
package num6;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class B3003 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
StringBuilder sb = new StringBuilder();
int org[] = new int[] { 1, 1, 2, 2, 2, 8 };
for (int i = 0; i < org.length; i++) {
int cnt = org[i] - Integer.parseInt(st.nextToken());
sb.append(cnt).append(" ");
}
System.out.println(sb);
}
}
- 2444번
package num6;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class B2444 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int n = Integer.parseInt(br.readLine());
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n - i; j++) {
sb.append(" ");
}
for (int j = 1; j <= 2 * i - 1; j++) {
sb.append("*");
}
sb.append("\n");
}
for (int i = n - 1; i >= 1; i--) {
for (int j = 1; j <= n - i; j++) {
sb.append(" ");
}
for (int j = 1; j <= 2 * i - 1; j++) {
sb.append("*");
}
sb.append("\n");
}
System.out.print(sb);
}
}
- 10988번
package num6;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class B10988 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
String org = br.readLine();
sb.append(org);
sb.reverse();
String rev = sb.toString();
if (rev.equals(org)) {
System.out.println(1);
} else {
System.out.println(0);
}
}
}
- 1157번
package num6;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class B1157 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] input = br.readLine().toUpperCase().split("");
int count[] = new int[input.length];
int max = 0;
int maxCount = 0;
int inputLength = input.length;
for (int i = 0; i < inputLength; i++) {
for (int j = i + 1; j < inputLength; j++) {
if (input[i].equals(input[j])) {
count[i] += 1;
}
}
if (count[i] > max) {
max = count[i];
maxCount = i;
} else if (count[i] == max) {
max = 0;
}
}
if (inputLength == 1) {
max = 1;
maxCount = 0;
}
if (max != 0) {
System.out.println(input[maxCount]);
} else {
System.out.println("?");
}
}
}
//import java.util.Scanner;
//
//public class B1157 {
//
// public static void main(String[] args) {
//
// Scanner scanner = new Scanner(System.in); // BufferedReader 대신 Scanner 사용
//
// String input = scanner.next().toUpperCase(); // 입력을 한 번에 받고 대문자 변환
//
// int[] count = new int[26]; // 알파벳 별 등장 횟수를 저장
//
// int maxCount = 0;
// int max = 0;
//
// for (int i = 0; i < input.length(); i++) {
// char c = input.charAt(i);
// count[c - 'A']++; // 알파벳 별 등장 횟수 증가
// if (count[c - 'A'] > max) {
// max = count[c - 'A'];
// maxCount = c;
// } else if (count[c - 'A'] == max) {
// maxCount = '?';
// }
// }
//
// System.out.println((char) maxCount);
// }
//
//}
- 4344번
package num6;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.DecimalFormat;
import java.util.StringTokenizer;
public class B4344 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
double C = Double.parseDouble(br.readLine());
double sum = 0;
double avg = 0;
double avgArr[] = new double[(int) C];
double avgNum = 0;
double finalAvg[] = new double[(int) C];
double finalScore = 0;
DecimalFormat decimalFormat = new DecimalFormat("0.000");
for (int i = 0; i < C; i++) {
st = new StringTokenizer(br.readLine());
int total = Integer.parseInt(st.nextToken());
double stdArr[] = new double[(int) total];
int cnt = 0;
while (st.hasMoreTokens()) {
stdArr[cnt] = Integer.parseInt(st.nextToken());
sum += stdArr[cnt];
cnt++;
}
avg = sum / total;
avgArr[i] = avg;
for (int k = 0; k < total; k++) {
if (stdArr[k] > avgArr[i]) {
avgNum++;
}
}
finalScore = (avgNum / total) * 100;
finalScore = Math.round(finalScore * 1000.0) / 1000.0;
finalAvg[i] = finalScore;
sum = 0;
avg = 0;
avgNum = 0;
finalScore = 0;
}
for (int j = 0; j < C; j++) {
System.out.println(decimalFormat.format(finalAvg[j]) + "%");
}
}
}
728x90
반응형
'Algorithm > 백준(BOJ)' 카테고리의 다른 글
백준 5단계 -Java (2) | 2023.04.18 |
---|---|
백준 4단계 - Java (0) | 2023.04.11 |
백준 3단계 - Java (0) | 2023.04.02 |
백준 2단계 - Java (0) | 2023.03.23 |
백준 1단계 - Java (0) | 2023.03.22 |
댓글