Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 백준
- 백준 #c++
- baekjoon #백준 #boj
- flutter #플러터 #분석
- 인턴 #프론트엔드 #개발자 #프론트엔드개발자 #취준
- flutter #todolist
- firebase #파이어베이스
- 백준 #boj #baekjoon
- flutter #상태관리
- git #unity #깃허브
- boj #baekjoon
- boj #baekjoon #c++
- Flutter
- flutter #깃
- baekjoon #boj #c++
- #유데미 #udemy #웅진씽크빅 #스나이퍼팩토리 #인사이드아웃 #미래내일일경험 #프로젝트캠프 #부트캠프 #react #리액트프로젝트 #프론트엔드개발자양성과정 #개발자교육과정
- 비주얼스튜디오 #코드스니펫
- flutter #firebase #플러터 #파이어베이스 #연동
- 백준 #boj
- 로컬저장소 #이름변경
- 유데미 #udemy #웅진씽크빅 #스나이퍼팩토리 #인사이드아웃 #미래내일일경험 #프로젝트캠프 #부트캠프 #react #리액트프로젝트 #프론트엔드개발자양성과정 #개발자교육과
- flutter #플러터
- unity #2d-game
- boj #c++
- VS #비주얼스튜디오
- 비주얼 스튜디오 #vs #visual studio
- unity #2d-game #minigame #vscode
- 플러터 #flutter #restful #rest api
- flutter #app #취준
- flutter #git
Archives
- Today
- Total
cococo-coding
5598번. 카이사르 암호 (c++풀이) 본문
문제
풀이
우선 카이사르 단어를 string으로 입력받는다.
문제에서 변환전의 알파벳 중 X Y Z 와 그 이외의 알파벳을 분리하여 if-else문으로 나누어준다.
X Y Z 는 변환 후에는 A B C가 되어야하므로, 아스키코드기준으로 23을 더해준다.
나머지 알파벳들은 3씩만 뒤로 밀린 상태이므로, 원상태로 돌리기 위해 아스키코드기준으로 3을 더해준다.
그리고 변환된 단어를 출력해주면 끝이다.
코드
첫번째 코드
#include <iostream>
using namespace std;
/*
1. 단어를 입력받는다.
2. 카이사르 단어를 원래 단어로 고친다.
3. 고친 단어를 출력한다.
*/
int main() {
//1
string word;
cin >> word;
//2
for (int i = 0; i < word.size(); i++) {
if (word[i] >= 68 && word[i] <= 90) word[i] = word[i] - 3;
else word[i] = word[i] + 23;
cout << word[i]; //3
}
return 0;
}
두번째 코드(함수ver)
#include <iostream>
using namespace std;
/* 함수ver
1. 단어를 입력받는다.
2. 카이사르 단어를 원래 단어로 고친다.
3. 고친 단어를 출력한다.
*/
void findword(string word) {
for (int i = 0; i < word.size(); i++) {
if (word[i] >= 68 && word[i] <= 90) word[i] = word[i] - 3;
else word[i] = word[i] + 23;
cout << word[i]; //3
}
}
int main() {
//1
string word;
cin >> word;
//2
findword(word);
return 0;
}
오히려 함수버전으로 만든 두 번째 코드가 코드길이가 더 길다. 하지만 어떤 기능을 사용자정의함수로 만들어서 메인함수 밖으로 빼는 연습을 꾸준히 하기 위해 함수버전으로도 만들어보았다.
첫번째 코드에서 //2 부분을 findword라는 함수로 만들어 main함수 이전에 정의해주었다.
메인함수에서는 카이사르 단어를 입력받는 부분과 findword함수를 호출하는 부분으로 나누어진다.
이때 findword함수에 입력받은 단어word를 매개변수로 넣었다.
findword함수에서는 매개변수로 받은 word를 for문을 이용하여 한 글자씩 원래알파벳으로 변환하고 바로 출력해준다.
'[BOJ] 코드 모음 > C++_learning 문제집' 카테고리의 다른 글
5523번. 경기 결과 (c++풀이) (0) | 2024.01.11 |
---|---|
10867번. 중복 빼고 정렬하기 (c++풀이) (0) | 2024.01.11 |
3059번. 등장하지 않는 문자의 합 (c++풀이) (1) | 2024.01.10 |
3049번. 다각형의 대각선 (c++ 풀이) (0) | 2024.01.10 |
4493번. 가위 바위 보? (c++풀이) (0) | 2024.01.09 |