나 개발자 진짜 되냐?

코딩테스트 입문 - 대문자와 소문자 ( upper, lower / to, is ) 본문

프로그래머스를 풀어보아요!/C++

코딩테스트 입문 - 대문자와 소문자 ( upper, lower / to, is )

Snow Rabbit 2026. 5. 8. 16:37

 

오늘은 어버이날이군요.

저는 어제 꽃을 사서

부모님께 드렸습니다.

 

오늘은 이제 선물을 드릴 예정이고요.

 

예전부터 생각해보니..

어버이날에는

당일 아침에 옷에다가 카네이션을 꽂아드렸던거 같아요.

그게 맞다면..

이제 꽃은 전날부터 미리 준비해야겠습니다.

 

 

대문자 소문자에 대한 알고리즘을 가져왔어요!

 


 

 

계획은

소문자는 -29? 막 이렇게 하고

대문자는 + 29 이렇게 해서

아닌가 27인가?

 

여하튼 그렇게 해주고 싶었다.

 

인지 씨에게 찾아가니 괜찮다는 답변을 받았다.

 

근데 음..

얘가 대문자이고 소문자인걸 if문으로 구별해야 하는데..

이건 숫자로 안되려나?

 

 

이렇게 해주면 된다.

 

c -'a' >= 0 이렇게 해줄 필요 없이

그냥 c >=  'a' 해주면 되고

소문자를 빼고 대문자를 더해주는 방식을 해주면 된다

- 'a' + 'A'

 

쉬운 알고리즘 같은 게 있냐고 물었는데

 

마법의 함수들을 알려주었다.

 


isupper(c)

문자 c가 대문자면 ture 반환

 

 

islower(c)

문자 c가 소문자면 ture 반환.

 if(c >= 'a' && c <= 'z') 이 코드와

if(islower(c)) 와 같은 것!!

 

 

toupper(c)

문자 c를 대문자로 변환

 

 

isupper(c)

문자 c를 소문자로 변환


 

 

그리고 또 하나

A는 아스키코드로 65부터 시작하고

a는 아스키코드로 97부터 시작한다.

둘의 차이는 32부터!

그래서 27이나 29는 틀렸다!!


 

 

마지막으로!

for char c : my_string에서

char& c를 해주면

 

answer += c;

해줄 필요가 없다고 한다.

&이게 있으면 원본

없으면 복사본인데

 

원본을 직접 바꿔도 문제가 안되다 보니

&를쓰면 메모리를 조금(?)이라도 아낄 수 있다고 한다.

 

 

 

인지 씨의 3줄 요약


다음에 해볼게요.!! 인지 씨 땡큐!!