[프로그래머스/C++ 문제 풀이] Lv. 2 - JadenCase 문자열 만들기

2024. 8. 19. 17:26·코딩테스트/프로그래머스 (Lv. 2)
728x90
반응형

문제 설명

JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 단, 첫 문자가 알파벳이 아닐 때에는 이어지는 알파벳은 소문자로 쓰면 됩니다. (첫 번째 입출력 예 참고)
문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요.

제한 사항

  • s는 길이 1 이상 200 이하인 문자열입니다.
  • s는 알파벳과 숫자, 공백문자(" ")로 이루어져 있습니다.
    • 숫자는 단어의 첫 문자로만 나옵니다.
    • 숫자로만 이루어진 단어는 없습니다.
    • 공백문자가 연속해서 나올 수 있습니다.

입출력 예


문제 풀이

이번 문제는 단어의 첫 스펠링을 대문자로, 나머지 스펠링은 소문자로 변경하는 문제입니다.

 

난이도는 매우 쉬운편에 속하며 저의 경우 string 클래스에 toupper(), tolower() 함수를 생각하지 못해 직접 아스키코드 값을 활용해 문자를 변경해주며 문제를 해결하였습니다.

정답 코드

더보기

풀이 시간 : 8m 39s

#include <string>
#include <vector>

using namespace std;

void ChangeUpper(string& str, int index)
{
    // 만약 해당 문자가 소문자인 경우
    if (str[index] >= 'a' && str[index] <= 'z')
    {
        // 대문자로 수정합니다.
        // * 'a'와 'A'의 아스키코드 차 : 32
        str[index] = str[index] - 32;
    }
}

void ChangeLower(string& str, int index)
{
    // 만약 해당 문자가 대문자인 경우
    if (str[index] >= 'A' && str[index] <= 'Z')
    {
        // 소문자로 수정합니다.
        // * 'a'와 'A'의 아스키코드 차 : 32
        str[index] = str[index] + 32;
    }
}

string solution(string s) {
    string answer = "";
    
    // 첫 문자 수정
    ChangeUpper(s, 0);
    
    for (int i = 1; i < s.size(); i++)
    {
        // 이전 문자가 빈 문자인 경우
        if (s[i- 1] == ' ')
        {
            // 해당 문자를 대문자로 수정합니다.
            ChangeUpper(s, i);
        }
        // 이전 문자가 빈 문자가 아닌 경우
        else
        {
            // 해당 문자를 소문자로 수정합니다.
            ChangeLower(s, i);
        }
    }
    
    answer = s;
    
    return answer;
}
728x90
반응형
저작자표시 비영리 변경금지 (새창열림)

'코딩테스트 > 프로그래머스 (Lv. 2)' 카테고리의 다른 글

[프로그래머스/C++ 문제 풀이] Lv. 2 - 숫자의 표현  (0) 2024.08.23
[프로그래머스/C++ 문제 풀이] Lv. 2 - 이진 변환 반복하기  (0) 2024.08.23
[프로그래머스/C++ 문제 풀이] Lv. 2 - 최솟값 만들기  (0) 2024.08.19
[프로그래머스/C++ 문제 풀이] Lv. 2 - 올바른 괄호  (0) 2024.08.19
[프로그래머스/C++ 문제 풀이] Lv. 2 - 최댓값과 최솟값  (0) 2024.08.19
'코딩테스트/프로그래머스 (Lv. 2)' 카테고리의 다른 글
  • [프로그래머스/C++ 문제 풀이] Lv. 2 - 숫자의 표현
  • [프로그래머스/C++ 문제 풀이] Lv. 2 - 이진 변환 반복하기
  • [프로그래머스/C++ 문제 풀이] Lv. 2 - 최솟값 만들기
  • [프로그래머스/C++ 문제 풀이] Lv. 2 - 올바른 괄호
리태s
리태s
게임 클라이언트 프로그래머 직무를 준비하며 공부한 내용을 정리한 블로그입니다.
    반응형
    250x250
  • 리태s
    LeeTaes 공부노트
    리태s
  • 전체
    오늘
    어제
    • Home (165)
      • 프로젝트 (20)
        • Isaac 3D (5)
        • TimelessAdventure (13)
        • FruitsPuzzle (2)
      • Game Programming (25)
        • C# (8)
        • Unity Engine (6)
        • Unreal Engine (8)
        • UE_Multiplayer (3)
      • 코딩테스트 (111)
        • 프로그래머스 (Lv. 0) (27)
        • 프로그래머스 (Lv. 1) (31)
        • 프로그래머스 (Lv. 2) (21)
        • 백준 (Study) (29)
        • 알고리즘 (3)
      • CS지식 (7)
        • 운영체제 (7)
      • 일상 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    delegate
    2018 kakao
    청년취업사관학교
    pcce 기출문제
    백준
    project t.a develop
    fruitspuzzle
    코딩테스트
    unrealengine
    c#
    Algorithm
    issac3d
    unity
    CS지식
    Unreal Engine
    ai controller
    구현
    2022 kakao
    C++
    dataasset
    timelessadventure
    후기
    sesac
    tsoftobjectptr
    프로세스
    2019 kakao
    프로그래머스
    fsoftobjectpath
    Summer/Winter Coding
    프로젝트
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
리태s
[프로그래머스/C++ 문제 풀이] Lv. 2 - JadenCase 문자열 만들기
상단으로

티스토리툴바