백준 - 5단계 문자열

이상훈·2023년 3월 10일
0

11654번

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int A = sc.next().charAt(0);

		System.out.println(A);
	}
}

2743번

import java.util.*;
import java.io.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        String text = bf.readLine();
        System.out.println(text.length());
    }
}
.length() string 길이 나타냄

9086번

import java.io.*;

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		int cnt = Integer.parseInt(bf.readLine());

		for (int i=0; i<cnt; i++) {
			String A = bf.readLine();
			System.out.println(A.charAt(0)+""+A.charAt(A.length()-1));
		}
	}
}
A.charAt() <-인덱스를 의미
첫번째는 0, 마지막은 A.length-1
그냥 더하면 숫자로 변환 되기때문에 "" 넣어줘야함

11720번
#1

import java.util.*;
import java.io.*;

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		bf.readLine();	// N 은 쓸모가 없으므로 입력만 받는다.

		int sum = 0;

		for(byte value : bf.readLine().getBytes()) {
			sum += (value - '0');	// 또는 (a-48)
		}

		System.out.print(sum);
	}
}
솔직히 모르겠다.

#2

import java.util.*;
import java.io.*;

public class Main {
	public static void main(String[] args) throws IOException {
		Scanner sc = new Scanner(System.in);
		sc.nextInt();
		String B = sc.next();

		int sum = 0;
		for (int i = 0; i<B.length(); i++) {
			sum += B.charAt(i)-48;
		}
		System.out.println(sum);
	}
}
charAt() 은 해당 문자의 아스키코드 값을 반환하므로 -'0' 혹은 -48을 해줘야 입력받은 숫자 값 그대로를 사용할 수 있다.

10809번

import java.util.*;
import java.io.*;

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		String text = bf.readLine();

		// 알파벳 수만큼 배열 생성
		int[] arr = new int[26];
		for (int i=0; i<26; i++) {
			arr[i] = -1;
		}

		for(int i = 0; i < text.length(); i++) {
        	// 문자하나하나 분리
			char ch = text.charAt(i);
			
			if(arr[ch - 'a'] == -1) {	// arr 원소 값이 -1 인 경우에만 초기화
				arr[ch - 'a'] = i;
			} 
            // ch -'a' = 문자를 숫자로 변환 ch -97 도 가능
            // a부터 1로 나타내려고
		}

		for(int val : arr) {	// 배열 출력
			System.out.print(val + " ");
		}
	}
}

2675번

import java.util.*;
import java.io.*;

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st;
		int cnt = Integer.parseInt(bf.readLine());

		for (int i = 0; i<cnt; i++) {
			st = new StringTokenizer(bf.readLine());
			int num = Integer.parseInt(st.nextToken());
			String text = st.nextToken();

			for (int j = 0; j<text.length() ;j++) {
				for (int k = 0; k<num; k++) {
					System.out.print(text.charAt(j));
				}
			}
			System.out.println();
		}
	}
}

1157번

import java.util.*;
import java.io.*;

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		String text = bf.readLine();

		int[] arr = new int[26];
        // 알파벳 갯수만큼 받기
		for (int i = 0; i<text.length(); i++) {
			if ('a' <= text.charAt(i) && text.charAt(i) <= 'z') {
            	// 소문자 (-97도 가능)
				arr[text.charAt(i)-'a']++;
			} else {
            	// 대문자도 적용 (-65도 가능)
				arr[text.charAt(i)-'A']++;
			}
		}
		int max = 0;
		char ch = '?'; //''만 되네?
		for (int i = 0; i < arr.length; i++) {
			if (max < arr[i]) {
				max = arr[i];
				ch = (char) (i+65); // 숫자를 영문 대문자로 변환
			} else if (max == arr[i]) { // 같은게 여러개일때
				ch = '?';
			}
		}
		System.out.println(ch);
	}
}
65(A) ~ 90(Z)
97(a) ~ 122(z)
char로 받을경우 10진수로 변환할때 위의 수만큼 빼서 사용하면 된다.

1152번

import java.io.*;

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		String text = bf.readLine();

		// text.trim();
		int blank = 0;
		for (int i =0; i<text.length(); i++) {
			if (text.charAt(i) == ' ') {
				blank++;
			}
		}
		if (text.charAt(0) == ' ') {
			blank--;
		}
		if (text.charAt(text.length()-1) == ' ') {
			blank--;
		}
		System.out.println(blank+1);
	}
}
trim()이 걸러주지 못하는 띄어쓰기가 있었다.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.StringTokenizer;
 
public class Main {
 
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		StringTokenizer st = new StringTokenizer(br.readLine()," ");
        // 공백 기준으로 나눠진 것들
		System.out.print(st.countTokens());
	}
}

2908번

import java.util.*;
import java.io.*;

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(bf.readLine());
		int A = Integer.parseInt(new StringBuilder(st.nextToken()).reverse().toString());
		int B = Integer.parseInt(new StringBuilder(st.nextToken()).reverse().toString());

		System.out.println((A < B) ? B:A);
	}
}
stringBuilder공부필요
reverse()
toString()
public class Main
{
    public static void main(String[] args)
    {
        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append("문자열 ").append("연결");
//        String str = stringBuilder;   // String에 StringBuilder를 그대로 넣을 순 없다. toString()을 붙여야 한다
        String str = stringBuilder.toString();
        // 두 println()은 같은 값을 출력한다
        System.out.println(stringBuilder);
        System.out.println(str);
    }

}
public class Main
{
    public static void main(String[] args)
    {
        StringBuilder stringBuilder = new StringBuilder();
        ArrayList<String> list = new ArrayList<>();
        list.add("첫 번째, ");
        list.add("두 번째, ");
        list.add("세 번째, ");
        list.add("네 번째, ");
        list.add("다섯 번째");
        for (int i = 0; i < list.size(); i++)
        {
            stringBuilder.append(list.get(i));
        }
        System.out.println(stringBuilder);
    }

}
// >> 첫 번째, 두 번째, 세 번째, 네 번째, 다섯 번째

5622번

import java.util.*;
import java.io.*;

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		String text = bf.readLine();

		int sum = 0;
		for (int i = 0; i<text.length(); i++) {
			if (text.charAt(i) >= 87) {
				sum+=10;
			} else if (text.charAt(i) >= 84) {
				sum+=9; // 3개짜리씩 가다가 4개짜리가 나와있었다... 문제를 잘 읽자
			} else if (text.charAt(i) >= 80) {
				sum+=8;
			} else if (text.charAt(i) >= 77) {
				sum+=7;
			} else if (text.charAt(i) >= 74) {
				sum+=6;
			} else if (text.charAt(i) >= 71) {
				sum+=5;
			} else if (text.charAt(i) >= 68) {
				sum+=4;
			} else if (text.charAt(i) >= 65) {
				sum+=3;
			} else {
				sum+=2;
			}
		}
		System.out.println(sum);
	}
}

11718번

import java.io.*;

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		String str;

		while ((str=bf.readLine())!=null) {
			System.out.println(str);
		}
	}
}
이게 왜 문자열 문제에 있는거야...

27866번

import java.util.*;
import java.io.*;

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		String text = bf.readLine();
		int indexNum = Integer.parseInt(bf.readLine());

		char str = text.charAt(indexNum-1);
		System.out.println(str);
	}
}

0개의 댓글