※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※

 

이번에 볼 문제는 백준 33556번 문제인 Java String Equals이다.
문제는 아래 링크를 확인하자.

https://www.acmicpc.net/problem/33556

 

주어지는 두 문자열 A와 B는 (1) 문자열 A가 null인 경우, (2) 문자열 A는 null이 아니지만 B는 null인 경우, (3) 문자열 A와 B 모두 null이 아닌 경우의 세 가지 경우로 나눌 수 있다.

 

(1)의 경우 주어지는 두 함수 모두 NullPointerException이 항상 발생함을 지문으로부터 알 수 있다. 또한 (2)의 경우 A와 B가 다름이 명백하므로 두 함수 모두 false를 반환할 것임을 알 수 있다.

 

그 외의 경우는 모두 입력으로 일반 문자열이 주어지는 상황이므로, 일반적인 비교와 대소문자를 무시한 비교를 구현하여 문제를 해결할 수 있다.

 

"null"만이 값이 존재하지 않음을 의미한다는 점에 유의하자. 즉, "Null", "NULL" 등은 "null"과 같지 않다는 점에 유의하자.

 

아래는 제출한 소스코드이다.

#include <iostream>
using namespace std;

string A, B;

int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);

    cin >> A >> B;
    if (A == "null") cout << "NullPointerException\nNullPointerException", exit(0);
    else if (B == "null") cout << "false\nfalse", exit(0);
    
    if (A == B) cout << "true\n";
    else cout << "false\n";

    for (auto &l:A) l = tolower(l);
    for (auto &l:B) l = tolower(l);
    if (A == B) cout << "true";
    else cout << "false";
}
728x90

'BOJ' 카테고리의 다른 글

[BOJ 8100 // C++] Containers  (0) 2025.03.06
[BOJ 8104 // C++] Fibonacci Words  (0) 2025.03.05
[BOJ 33510 // C++] 이상한 나누기  (0) 2025.02.27
[BOJ 33541 // C++] 2025는 무엇이 특별할까?  (0) 2025.02.26
[BOJ 33526 // C++] Anti-Fan Death  (0) 2025.02.25

+ Recent posts