2023. 9. 25. 14:25, 알고리즘/프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/120893
처음에, 대문자를 소문자로, 소문자를 대문자로 변경하는 함수를 생각했는데, 어느 헤더에 어떤 함수인지가 생각이 나지 않아서 그냥 아스키코드 상에서의 값을 찾아서 해당 값에서 차이만큼을 이용해서 변형시키는 코드를 작성해서 제출했다.
#include <string>
#include <vector>
#include <iostream>
using namespace std;
string solution(string str) {
string answer = "";
// cout<<int('a')<<' '<<int('z')<<' '<<int('A')<<' '<<int('Z');
for(auto c: str){
if(c>=97 && c<=122) answer+=char(c-32);
else answer+=char(c+32);
}
return answer;
}
값을 출력해보면서 확인해보고 해당 차이만큼 더하고 빼는 형태의 코드를 작성했는데, 함수가 생각나지 않으면 이런식의 풀이를 활용하는것이 좋을것 같다. 아스키코드 숫자값을 외우지 않더라도 직접 cout 해보면서 차이를 찾아내면 된다.
다른 사람의 풀이를 찾아보니, 내가 원하는 형태대로 함수를 이용해서 판별하고 소문자를 대문자로, 대문자를 소문자로 변환하는 형태의 코드를 작성한 풀이가 있어서 첨부해본다.
#include <string>
#include <vector>
using namespace std;
string solution(string my_string) {
for(auto& v : my_string){
if(islower(v)) v = toupper(v);
else v = tolower(v);
}
return my_string;
}
사용한 함수들을 보면,
islower()
toupper()
tolower()
함수들이고, 이 함수들은 추가적으로 헤더를 추가한게 없는것을 보니까 <string> 헤더에 있는 함수들로 보여진다.
islower를 사용한것을 보니 isupper() 함수도 있을 것으로 보여진다.
다음에는
islower()
Isupper()
tolower()
toupper()
함수들을 떠올려서 문제를 풀어보도록 하자.
'알고리즘 > 프로그래머스' 카테고리의 다른 글
| Lv 0. 인덱스 바꾸기 - solution 함수에서 &의 활용을 주의하자. (0) | 2023.09.26 |
|---|---|
| Lv 0. 영어가 싫어요 *다시 풀어보기* (0) | 2023.09.26 |
| Lv 0. 암호 해독 (0) | 2023.09.25 |
| Lv 0. 가까운 수 - pair 에 emplace_back()을 쓰고 싶다면, {a,b}를 넣는대신 (a,b) 형태로 넣자. (0) | 2023.09.25 |
| Lv 0. 삼각형의 완성조건 (1) (0) | 2023.09.24 |
Comments, Trackbacks
