나 개발자 진짜 되냐?

백준 C++ 1157번 단어 공부 ( toupper ) 본문

C++을 시작해봐요!/구현문제를 풀어봤어요!

백준 C++ 1157번 단어 공부 ( toupper )

Snow Rabbit 2025. 12. 11. 21:35

 

근래에 문제가 쉬워서..

그냥 한두 문제 열심히 풀었는데

오늘 막혀버렸다..

그래서 정리하기위해 블로그를 찾았다

ㅎㅎ

신나게 점프하는 아기오구가 참 귀엽다.


 

 

뭔가 잘 풀 수 있을거라고 생각하며 풀었는데 뭔가 막혔다.

그것은 대문자로 출력하는 것...

 

 

그리고 처음에..

대문자일 경우 +26을 해주는 방법을 썼는데....

이 방법도 틀렸다고 한다.

'a'를 빼주는 거 말고 'A'도 된다고 한다..

헉!!!!!

이 좋은 방법이 있었다니..!!

 

그래서 통일하는 방법을 알려주었다.

 

소문자 범위를 벗어났을 때

대문자로 바꿔주고!

대문자 'A'에 빼준다.

 

내가 근데 지피티씨한테 아까 물어볼 때

무슨 알고리즘을? 하나 도입하는 거 같았는데

나한테는 안 알려주길래

 

너라면 어떻게 이걸 가장 효율적으로 풀었을 거야?라고 물으니

toupper을 알려주었다.

 

toupper

 

to upper으로

문자를 대문자로 바꿔주는 c 라이브러리 함수

 

그래서! 그냥 for문에

 

이렇게 대문자로 통일시켜 두면?!

최고라는 것..!!

 

 진작 좀 알려주지.. 참내 내가 안 물어봤으면 어쩔뻔했어!!!!!!!!

 

흥..

 

이제 그다음이 중요하다 최댓값 구하기

 

해야 하는 일은

1. 최대로 많이 나온 값을 찾는다.

2. 그 값의 대문자를 출력해야 한다.

3. 만약에 겹치면? 를 출력해한다.

 

 

a [i] 보다 클 때

그 index의 값과 a [i]에 들어갈 값

이 두 가지를 저장할 변수가 필요하고

 

dup는

duplicate = 중복된 것, 두 개 이상 있는 것

으로 사용되어 중복되는가 안되는가 bool값으로 자주 쓰이는 변수이름이라고 한다.

지피티씨가 알려주었지만 자주 애용해야지 ㅎ

 

true면 중복 됐다는 거니까 그냥? 를 출력하고

아니면 idx에다가 'A'를 더해주고 char 화 해주면 된다.

 

 

 

그럼 완성본은?!

 

자잔!

 

오늘 배운 것

toupper(변수) : 대문자 변경해 주기!

dup : T/F로 해줘서 값에 따라 출력이 다르게 표현!

 

쓰면서 알게 됐는데

toupper의 반대는 tolower이라고 한다.

 

오케이 두 개 접수!

고생했다.

어렵다. 쉬운 줄 알았는데 어렵다.

어려워!!!!!