문제 1.
더보기
1.내가 작성한 코드 -> 직관적이고 알기는 쉽지만 성능이 않좋음 시간적으로 O(N^2)
import java.util.*;
public class Main {
public static void main(String[] args) {
// 自分の得意な言語で
// Let's チャレンジ!!
Scanner sc = new Scanner(System.in);
String line = sc.nextLine();
String x = "";
for (int i = 0; i < line.length(); i++ ){
char a = line.charAt(i);
if (Character.isUpperCase(a)){
x += Character.toLowerCase(a);
} else if(Character.isLowerCase(a)){
x += Character.toUpperCase(a);
}
}
System.out.println(x);
}
}
2. 파이자가 정답 코드 코드짧고 직관적 그리고 배열 기반 처리 시간 O(N)
import java.util.*;
public class Main {
public static void main(String... args) {
Scanner sc = new Scanner(System.in);
var S = sc.next().toCharArray();
for (char c : S) {
if (Character.isUpperCase(c)) {
System.out.print(Character.toLowerCase(c));
} else {
System.out.print(Character.toUpperCase(c));
}
}
System.out.println();
}
}
3. AI가 생각한 답변 -> I/O발생을 한번만 발생시킨다.
StringBuilder sb = new StringBuilder();
for (char c : sc.next().toCharArray()) {
if (Character.isUpperCase(c)) {
sb.append(Character.toLowerCase(c));
} else if (Character.isLowerCase(c)) {
sb.append(Character.toUpperCase(c));
} else {
sb.append(c);
}
}
System.out.println(sb);
문제 2
contains는 문제의 요구사항을 그대로 표현한 것이고, == 포함되냐?” (의도 중심)
indexOf는 내부 동작을 드러낸 방식이다. == “위치가 없냐?” (구현 중심)
더보기
1. 내가 푼 문제
import java.util.*;
public class Main {
public static void main(String[] args) {
// 自分の得意な言語で
// Let's チャレンジ!!
Scanner sc = new Scanner(System.in);
String a = sc.nextLine();
String b = sc.nextLine();
boolean x = a.contains(b);
if (x){
System.out.println("YES");
} else {
System.out.println("NO");
}
}
}
2. 파이자 문제 풀이
import java.util.*;
public class Main {
public static void main(String... args) {
Scanner sc = new Scanner(System.in);
var S = sc.next();
var T = sc.next();
if (S.indexOf(T) == -1) {
System.out.println("NO");
} else {
System.out.println("YES");
}
}
}
3. AI라면 -> 내가 쓴 변수를 생략하고 if문 안에 직접 넣어서 코드를 줄였다.
if (a.contains(b)) {
System.out.println("YES");
} else {
System.out.println("NO");
}
문제 3
더보기
1.내가 푼 방식은 replace() 방식으로 "," 문자열에 있는 글 자를 바꿈
2. split()는 "," 로 구분해서 문자열을 나눈다 예를 들어 "a, b, c" 를 "a","b","c" 배열
3. delimiter() 입력 분해(스트림) sc.useDelimiter(","); 입력 기준 자체를 나누어 읽는다.
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
sc.useDelimiter("/|:"); // "/" , ":" 두개를 쓰고 싶을때 비트 연산자 | 이것을 사용한다.
while (sc.hasNext()) {
System.out.println(sc.next());
}
}
}
728x90
'코드 분석' 카테고리의 다른 글
| (3/24)paiza문제 분석 (0) | 2026.03.24 |
|---|---|
| (앞으로 코드 분석해야 할 것들 1차 정리) (0) | 2025.07.18 |
| switch문 완전 정복: if와는 무엇이 다를까?(5) (0) | 2025.07.01 |
| 2025.06.30 팀 프로젝트 – 로그인/헤더 구조 정리 요약 (0) | 2025.06.30 |
| 조건문 완전 마스터: if , else if , else 흐름 구조와 실전 예제까지 (0) | 2025.06.30 |