본문 바로가기
Algorithm/백준(BOJ)

백준 6단계 - Java

by k-mozzi 2023. 5. 22.
반응형
Preface

 

최근에 자바 공부에 많은 시간을 투자했지만, 아직도 브론즈 1~실버 5단계 문제를 혼자 힘으로 제대로 해결하지 못하고 구글링을 하거나 GPT에게 질문을 하게 된다.

 

보통 월요일마다 백준 문제를 푸는데, 하루 종일 한 두 문제도 해결하지 못하는 날도 있다.

 

물론 문제를 풀었을 때 오는 성취감도 좋지만, 해결하지 못했을 때 받는 스트레스가 나를 너무 괴롭힌다.

 

스트레스와 짜증은 그렇다 쳐도 자꾸 자신감이 떨어지고 개발 자체에 대한 흥미를 잃게 되는 것 같아 백준 문제풀이는 잠시 쉴 생각이다.

 

자바 기본서의 마지막장을 업로드한 후 생활코딩에서 자바스크립트 강의를 보고, 이후엔 JSP를 공부할 계획이다.

 

7월 중순에 정보처리기능사 실기 공부를 하여 시험을 친 이후엔 Spring 강의를 보며 포트폴리오를 위한 다양한 프로젝트를 시작할 것 같다.

 

아마 프로젝트를 시작할 때쯤부터 다시 코테 준비를 시작하지 않을까 싶다.

 

 

 

1157번은 내가 작성한 코드로 채점했을 때 시간 초과가 발생했다.

 

이런 저런 방법을 사용해 수정해봐도 문제가 해결되지 않아 GPT의 힘을 빌렸다.

 

또, 실버 문제부턴 다시 백준 문제풀이를 시작할 때 해결할 생각이다.


 

https://www.acmicpc.net/step/52

 

심화 1 단계

두세 문자가 한 글자로 묶일 수 있을 때 글자의 수를 세는 문제

www.acmicpc.net

 

 

- 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

댓글