주녘공부일지

[프로그래머스 C#] Lv.2 JadenCase 문자열 만들기 본문

Programmers - C#/CodingTest Lv.2

[프로그래머스 C#] Lv.2 JadenCase 문자열 만들기

주녘 2023. 12. 5. 15:36
728x90

https://school.programmers.co.kr/learn/courses/30/lessons/12951

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

1. 정답코드 및 핵심 아이디어, 유의사항

모든 문자를 소문자로 만든 뒤 공백을 만난 후 첫번째 문자가 숫자 아닐 경우(소문자일 경우) 대문자로 변환

+ 주어진 조건에 따라서 변환이 자주 일어날 수도 있을 것 같아 StringBuilder를 사용

 

주석참조

    using System;
    using System.Text;

    public class Solution
    {
        public string solution(string s)
        {
            s = s.ToLower(); // 모두 소문자로 변환 -> 공백, 숫자, 소문자만 존재

            var sb = new StringBuilder(s);
            bool isCheck = true; // 공백을 만났었는지 유무
            int num = 'A' - 'a'; // 아스키 코드 기준 대문자 변환을 위한 수치

            for (int i = 0; i < sb.Length; i++)
            {
                if (sb[i] == ' ') // 공백
                    isCheck = true;
                else if ('0' <= sb[i] && sb[i] <= '9') // 숫자
                    isCheck = false;
                else if (isCheck) // 공백을 만난 후 첫 문자 (소문자)
                {
                    sb[i] += (Char)num; // 대문자로 변환
                    isCheck = false;
                }
            }

            return sb.ToString();
        }
    }
728x90