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 | 31 |
Tags
- 정처기
- Zynq
- HDLBits
- 실기
- AMBA BUS
- UNIX
- Bus
- verilog HDL
- 정보처리기사
- verilog
- boj
- chip2chip
- baekjoon
- hdl
- C++
- Vivado
- 코딩테스트
- amba
- FPGA
- SQL
- 자격증
- axi
- 리눅스
- linux
- Xilinx
- 백준
- java
- Beakjoon
- vitis
- Backjoon
Archives
- Today
- Total
Hueestory
[2021 KAKAO BLIND] - 신규 아이디 추천 (C++) 본문
#include <string>
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;
string solution(string new_id) {
// 1단계
transform (new_id.begin(), new_id.end(), new_id.begin(), ::tolower);
// 2단계
string tmp = "";
for (auto x : new_id){
if (isalpha(x) || isdigit(x) || x == '-' || x == '_' || x == '.')
tmp += x;
}
new_id = tmp;
tmp = "";
// 3단계
for (auto x : new_id){
if (x == '.' && tmp.back() == '.') continue;
tmp += x;
}
new_id = tmp;
tmp = "";
// 4단계
if (new_id.front() == '.') new_id.erase(0, 1);
if (new_id.back() == '.') new_id.pop_back();
// 5단계
if(new_id.empty()) new_id = "a";
// 6단계
if (new_id.length() >= 16) new_id.erase(new_id.begin() + 15, new_id.end());
if (new_id.back() == '.') new_id.pop_back();
// 7단계
while (new_id.length() < 3) new_id += new_id.back();
return new_id;
}
1. transform(시작 위치, 마지막 위치, 결과를 저장할 범위, 변환할 함수)
2. 문자열 판단 함수
isalpha : 문자열이 문자인지 아닌지
isdigit : 문자열이 숫자인지 아닌지
3. string str;의 경우
str.front() - 벡터의 첫 번째 요소를 반환
str.back() - 벡터의 마지막 요소를 반환
str.begin() - 벡터의 첫 번째 요소
str.end() - 벡터의 마지막 요소
str.empty() - string이 빈 문자열인지 확인
str.at(index) - index 위치의 문자 반환, 유효한 범위인지 체크
str[index] - index 위치의 문자 반환
str.size() / str.length() - string 요소의 개수를 반환
'PS(중단) > programmers' 카테고리의 다른 글
[2019 KAKAO BLIND] - 오픈채팅방 (C++) (1) | 2024.08.28 |
---|---|
[2022 KAKAO BLIND] - 주차 요금 계산 (C++) (0) | 2024.08.28 |
[2022 KAKAO BLIND] - k진수에서 소수 개수 구하기 (C++) (0) | 2024.08.27 |
[2019 KAKAO BLIND] - 실패율 (C++) (0) | 2024.08.08 |
Comments