27866번
import java.util.Scanner;
public class Main{
public static void main(String args[]) {
Scanner input = new Scanner(System.in);
String s = input.next();
short j = input.nextShort();
System.out.println(s.charAt(j-1));
}
}
처음에 런타임에러가 떠서 풀이들을 찾아봤는데 다들 substring() 혹은 string 타입의 배열 혹은 bufferedreader 등을 쓰길래 그런걸 써야만 런타임에러가 나지 않는것일까 고민을 잠시 했는데 코드를 다시보니 j-1 부분을 j로 써서 틀린거였다 ..^^
코드는 이 방식이 가장 간단한 것 같은데 어떤 이점이 있어서 추가적인 클래스들을 쓰는 답안들이 많은지 알아봐야겠다
9086번
import java.util.Scanner;
public class Main{
public static void main(String args[]) {
Scanner input = new Scanner(System.in);
int num = input.nextInt();
for(int i=0;i<num;i++) {
String s = input.next();
System.out.print(s.charAt(0)) ;
System.out.println(s.charAt(s.length()-1));
}
}
}
입력을 먼저 다 받고 출력을 한번에 해야하나 하다가 입력-출력을 반복하는걸로 해봤는데 정답이었다
11654번
import java.util.Scanner;
public class Main{
public static void main(String args[]) {
Scanner input = new Scanner(System.in);
String s = input.next();
System.out.print(s.charAt(0)+0);
}
}
문자를 입력받아 아스키코드를 출력하는 문제이다
문자를 int형으로 변환하면 그 문자의 아스키코드값이 출력된다
위의 코드에선 따로 int 형을 사용하지 않고 s.charat(0)에 0을 더해 자동형변환을 유도한 코드이다
int형을 쓰려면 int k = input.next().charAt(0); 으로 코드를 작성해서 k값을 출력하면 된다
이 문제 관련 서치를 하다가 입출력(여러 입출력 방식들과 각 방식들의 시간적 효율 차이)에 관한 글을 보게되어 조만간 이부분에 대해 정리할 생각이다
27866번에서 생긴 의문과도 관련있는 부분인 것 같다
10809
import java.util.Scanner;
public class test {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String a = input.next();
for(int i=97;i<=122;i++) {
System.out.print(a.indexOf((char)i)+ " ");
}
}
}
코드 짧게 짜서+엄청 금방 생각해낸 코드라 좋아했는데 막상 제출해보니 메모리랑 런타임은 별 이득이 없는 것 같..다
더 효율적인 코드를 서치해보아야겠다
'언어 공부 내용 정리 > 백준' 카테고리의 다른 글
백준 자바 10988 (0) | 2023.06.16 |
---|---|
백준 자바 2884, 1152 / split() , StringTokenizer() 비교 (0) | 2023.06.09 |
백준 자바 10952,10951 (0) | 2023.05.24 |
백준 자바 10807, 10871, 10818, 10813 (0) | 2023.05.23 |
백준 자바 10172 (0) | 2023.05.18 |