안녕하세요. 맹꽁이입니다.
오늘은 백준 사이트 단계별 문제풀이의 심화 1 풀어볼게요.
이전글: #5 문자열
https://rb-cloud.tistory.com/8
#15083 - 새싹


import java.io.IOException;
public class Main{
public static void main(String[] args) throws IOException{
System.out.print(" ,r'\"7\nr`-_ ,' ,/\n \\. \". L_r'\n `~\\/\n |\n |");
}
}
#3003 - 단어 길이 재기


import java.io.IOException;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(br.readLine());
int[] chess = {1,1,2,2,2,8};
for(int i=0;i<6;i++){
chess[i] = chess[i]-Integer.parseInt(st.nextToken());
}
for(int c: chess){
bw.write(c+" ");
}
bw.flush();
bw.close();
}
}
#2444 - 별 찍기 - 7


import java.io.IOException;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(br.readLine());
for (int i=0;i<n;i++) {
for (int j=0;j<n-1-i;j++) {
bw.write(" ");
}
for (int k=0;k<2*i+1;k++) {
bw.write("*");
}
bw.newLine();
}
for (int i=n-2;i>=0;i--) {
for (int j = 0; j < n - 1 - i; j++) {
bw.write(" ");
}
for (int k = 0; k < 2 * i + 1; k++) {
bw.write("*");
}
bw.newLine();
}
bw.flush();
bw.close();
}
}
#10988 - 팰린드롬인지 확인하기


import java.io.IOException;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String a = br.readLine();
StringBuilder sb = new StringBuilder(a);
String bs = sb.reverse().toString();
if(bs.equals(a)){
bw.write(1+"");
}else{
bw.write(0+"");
}
bw.flush();
bw.close();
}
}
#1157 - 숫자의 합


import java.io.IOException;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String a = br.readLine().toUpperCase();
int[] cnt = new int[26];
for(int i=0;i<a.length();i++){
cnt[a.charAt(i)-'A']++;
}
int max=-1;
char result = '?';
for(int i=0;i<26;i++){
if(cnt[i]>max){
max = cnt[i];
result = (char)(i+'A');
}else if (cnt[i] == max) {
result = '?';
}
}
bw.write(result+"");
bw.flush();
bw.close();
}
}
#2941 - 크로아티아 알파벳



풀이 1)
import java.io.IOException;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String s = br.readLine();
int count=0;
int i=0;
while(i<s.length()){
if(i+2<s.length() && s.charAt(i)=='d' && s.charAt(i+1)=='z' && s.charAt(i+2)=='='){
count++;
i+=3;
}
else if(i+1<s.length()){
String two = s.substring(i, i+2);
if(two.equals("c=") || two.equals("c-")
|| two.equals("d-") || two.equals("lj")
|| two.equals("nj") || two.equals("s=")
|| two.equals("z=")){
count++;
i+=2;
}
else{
count++;
i++;
}
}
else{
count++;
i++;
}
}
bw.write(count+"");
bw.flush();
bw.close();
}
}
풀이 2)
import java.io.IOException;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String s = br.readLine();
String[] cro = {"dz=", "c=", "c-", "d-", "lj", "nj", "s=", "z="};
for(String c: cro){
s=s.replace(c, "*");
}
bw.write(s.length()+"");
bw.flush();
bw.close();
}
}
#1316 - 그룹 단어 체커



import java.io.*;
import java.util.Arrays;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int a = Integer.parseInt(br.readLine());
int count=a;
int[] list = new int[26];
for(int i=0;i<a;i++){
Arrays.fill(list, 0);
String word = br.readLine();
//word 한 문자마다 돌기
for(int j=0;j<word.length();j++){
//a면 -'a'로 0이 idx에 들어가도록
int idx = word.charAt(j)-'a';
//list[0]이 0일 때만 1로 바꾸기
if(list[idx]==0){
list[idx] = 1;
}
//list[0]이 이미 1이고, 바로 전 거랑 같은 알파벳이 아니면 count--, break
else if(list[idx]==1 && j>0 && word.charAt(j) != word.charAt(j-1)){
count--;
break;
}
}
}
bw.write(count+"");
bw.flush();
bw.close();
}
}
#25206 - 숫자의 합



import java.io.*;
import java.util.StringTokenizer;
import java.util.Arrays;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st;
double sumScore = 0.0;
double sumCredit = 0.0;
for (int i = 0; i < 20; i++) {
st = new StringTokenizer(br.readLine());
st.nextToken();
double credit = Double.parseDouble(st.nextToken());
String grade = st.nextToken();
if (grade.equals("P")) {
continue;
}
double point = 0.0;
switch (grade) {
case "A+":
point = 4.5;
break;
case "A0":
point = 4.0;
break;
case "B+":
point = 3.5;
break;
case "B0":
point = 3.0;
break;
case "C+":
point = 2.5;
break;
case "C0":
point = 2.0;
break;
case "D+":
point = 1.5;
break;
case "D0":
point = 1.0;
break;
case "F":
point = 0.0;
break;
}
sumScore += credit * point;
sumCredit += credit;
}
double avg = sumScore / sumCredit;
bw.write(avg + "");
bw.flush();
bw.close();
}
}
실버 시작하면서 점점 어려워지는 중...