본문 바로가기

프로그래밍 언어/C, C++

[Hackerrank] 11. Strings

11. 문자열

[ 난이도: Easy | 분야: Strings ]

1. 내용 정리

C++은 문자열을 손대기 위해 좀 더 좋은 방향으로의 대안책을 제공하고 이 자료형을 간단하게 string이라고 한다.

이 자료형에서 널리 사용하는 특징들은 아래와 같다:

선언

string a = "abc";

사이즈

int len = a.size();

두 문자열 연결하기

string a = "abc";
string b = "def";
string c = a + b; // c = "abcdef".

i-개 요소 접근하기

string s = "abc";
char c0 = s[0]; // c0='a'
char c1 = s[1]; // c1='b'
char c2 = s[2]; // c2='c'

s[0] = 'z'; // s = "zbc"

참조: 문자열을 읽고/쓰는데 cin/cout을 사용할 것이다.

 

2. 과제

입력 형식

a와 b라는 두 개의 문자열이 주어지고 두 문자열은 줄이 다르다. 각 문자열은 소문자 라틴 문자들로 구성되어 있다.

출력 형식

첫 번째 줄에서는 두 개의 공백으로 구분된 정수들을 출력하고, 이 정수들은 a와 b의 길이를 의미한다.

두 번째 줄에서는 a와 b를 연결한 문자열을 출력하라. (a+b)

세 번째 줄에서는 공백으로 구분하여 두 문자열 a'과 b'을 출력하라. a'과 b'은 a와 b와 같지만 첫 번째 문자가 상호교환되어있다.

입력 예시

abcd
ef

출력 예시

4 2
abcdef
ebcd af

설명

a = "abcd"

b = "ef"

|a| = 4

|b| = 2

a + b = "abcdef"

a' = "ebcd"

b' = "af"

문제

#include <iostream>
#include <string>
using namespace std;

int main() {
	// Complete the program
  
    return 0;
}
더보기

정답

 

#include <iostream>
#include <string>
using namespace std;

int main() {
	// Complete the program
    // Read inputs
    string a;
    string b;
    cin >> a;
    cin.ignore();
    cin >> b;
    
    // String Size
    int num_a = a.size();
    int num_b = b.size();
    cout << num_a << " " << num_b << endl;
    
    // Concatenate
    string c = a + b;
    cout << c << endl;
    
    // Swap First Char.
    string a_prime = a;
    string b_prime = b;
    a_prime[0] = b[0];
    b_prime[0] = a[0];
    cout << a_prime << " " << b_prime << endl;
    
    return 0;
}

 

 

 

 

ⓒ Hackerrank. All Rights Reserved.

'프로그래밍 언어 > C, C++' 카테고리의 다른 글

[Hackerrank] 14. Classes  (0) 2024.02.09
[Hackerrank] 13. Structs  (0) 2024.02.09
[Hackerrank] 10. StringStream  (0) 2024.02.08
[Hackerrank] 09. Variable Sized Array  (2) 2024.02.08
[Hackerrank] 08. Arrays Introduction  (0) 2024.02.06