반응형
코드포스(Codeforces) 112A Petya and Strings 풀이 코드
C | C++ | Java | Python
Difficulty : *800 (Implementation / Strings)
문제 해설
입력된 두 문자열을 대소문자 구분 없이 사전 순으로 비교하여 첫 번째 문자열이 더 앞서면 -1, 두 문자열이 같으면 0, 두 번째 문자열이 더 앞서면 1을 출력하는 문제입니다.
풀이
풀이
문자열은 최대 100자를 넘지 않으므로 101 사이즈의 char배열을 두 개 선언하고 각각 입력받아 모두 소문자로 치환합니다. 이후 두 문자열을 처음부터 비교하여 사전 순으로 앞선 것이 첫 문자열이라면 -1, 두 번째 문자열이라면 1, 둘이 같다면 0을 출력합니다.
String으로 두 문자열을 입력받아 모두 소문자로 치환합니다. 이후 두 문자열을 처음부터 비교하여 사전 순으로 앞선 것이 첫 문자열이라면 -1, 두 번째 문자열이라면 1, 둘이 같다면 0을 출력합니다.
String으로 두 문자열을 입력받아 toLowerCase()로 모두 소문자로 치환합니다. string1.compareTo(string2) 함수가 두 문자열을 사전 순으로 비교하여 string1이 앞서면 음수를, string2가 앞서면 양수를, 같으면 0을 반환하는 것을 이용하여 결과를 출력합니다.
두 문자열을 입력받아 lower()로 모두 소문자로 치환합니다. 이후 두 문자열을 처음부터 비교하여 사전 순으로 앞선 것이 첫 문자열이라면 -1, 두 번째 문자열이라면 1, 둘이 같다면 0을 출력합니다.
코드
#include <stdio.h>
#include <string.h>
int main() {
char a[101];
char b[101];
int i = 0, len = 0;
scanf("%s %s", a, b);
len = strlen(a);
for(i = 0; i < len; i++) {
if (a[i] >= 'A' && a[i] <= 'Z') {
a[i] = a[i] - 'A' + 'a';
}
if (b[i] >= 'A' && b[i] <= 'Z') {
b[i] = b[i] - 'A' + 'a';
}
}
for (i = 0; i < len; i++) {
if (a[i] != b[i]) {
if (a[i] < b[i]) {
printf("-1");
return 0;
}
else if (a[i] > b[i]) {
printf("1");
return 0;
}
}
}
printf("0");
return 0;
}
#include <iostream>
#include <string>
using namespace std;
int main(){
string a;
string b;
int i = 0, len = 0;
cin>>a>>b;
len = a.size();
for(i = 0; i < len; i++) {
if (a[i] >= 'A' && a[i] <= 'Z') {
a[i] = a[i] - 'A' + 'a';
}
if (b[i] >= 'A' && b[i] <= 'Z') {
b[i] = b[i] - 'A' + 'a';
}
}
for (i = 0; i < len; i++) {
if (a[i] != b[i]) {
if (a[i] < b[i]) {
cout<<"-1"<<endl;
return 0;
}
else if (a[i] > b[i]) {
cout<<"1"<<endl;
return 0;
}
}
}
cout<<"0"<<endl;
return 0;
}
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String a = sc.nextLine();
String b = sc.nextLine();
a = a.toLowerCase();
b = b.toLowerCase();
int rlt = a.compareTo(b);
if(rlt<0){
rlt = -1;
}
else if(rlt>0){
rlt = 1;
}
System.out.println(rlt);
}
}
a = input()
b = input()
a = a.lower()
b = b.lower()
rlt = 0
for i in range(len(a)):
if a[i] != b[i]:
if a[i] < b[i]:
rlt='-1'
break
elif a[i] > b[i]:
rlt='1'
break
print(rlt)
문제 출처
반응형
'Coding > CODEFORCES' 카테고리의 다른 글
[코드포스 CODEFORCES] 1511A Review Site 풀이 코드 (C/C++/Java /Python) (0) | 2021.08.23 |
---|---|
[코드포스 CODEFORCES] 263A Beautiful Matrix 풀이 코드 (C/C++/Java /Python) (0) | 2021.08.03 |
[코드포스 CODEFORCES] 282A Bit++ 풀이 코드 (C/C++/Java /Python) (0) | 2021.07.27 |
[코드포스 CODEFORCES] 158A Next Round 풀이 코드 (C/C++/Java /Python) (0) | 2021.07.17 |
[코드포스 CODEFORCES] 71A Way Too Long Words 풀이 코드 (C/C++/Java /Python) (0) | 2021.07.13 |