Goorm: 문자열 번갈아 출력하기

KangDroid·2021년 6월 21일
0

Algorithm

목록 보기
21/27

문제

핵심

  • 앞과 뒤 동시 적용
  • 문자열의 갯수에 따라 처리[Segfault 방지]

예제

input: abcdef
output: afbecd

input: aba
output: aab

알고리즘

  • start, end 변수 정의
    • 각각 시작 인덱스, 마지막 인덱스를 정의하고 있음
  • Case 1: 문자열의 길이가 짝수일 때
    • start < end 조건이 만족할 때 까지
      • input[start], input[end] 동시출력
      • start++, end--
  • Case 2: 문자열의 길이가 홀수일 때
    • 무한반복
      • start == end 라면, start만 출력하고 반복문 종료
      • input[start], input[end] 동시출력
      • start++, end--

    코드

#include <iostream>
using namespace std;
int main() {
	string input;
    getline(cin, input);
    
    int start = 0;
    int end = input.length()-1;
    
    if (input.length() == 0) {
        cout << "" << endl;
        return 0;
    }
    
    if (input.length() % 2 == 0) {
        while (start < end) {
            cout << input[start] << input[end];
            start++;
            end--;
        }
        cout << endl;
    } else {
        while (true) {
            if (start == end) {
                cout << input[start] << endl;
                break;
            }
            cout << input[start] << input[end];
            start++;
            end--;
        }
    }
	return 0;
}
profile
Student Platform[Backend] Developer

0개의 댓글

관련 채용 정보