티스토리 뷰
문제
programmers.co.kr/learn/courses/30/lessons/72410
코딩테스트 연습 - 신규 아이디 추천
카카오에 입사한 신입 개발자 네오는 카카오계정개발팀에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. 네오에게 주어진 첫 업무는 새로 가
programmers.co.kr
풀이
문제에서 구현하라는대로 그대로 따라 구현하면 됩니다. c++의 경우 isupper, tolower, substr과 같은 문자열(문자)를 다루는 stl을 적절히 사용하면 더 간단하게 구현할 수 있습니다.
코드
#include <bits/stdc++.h>
using namespace std;
bool isok(char x) {
if (islower(x) || isdigit(x) || x == '-' || x == '_' || x == '.') return 1;
return 0;
}
string solution(string new_id) {
string tmp = "";
// #1 대문자 소문자로 치환
for (char &c : new_id) if (isupper(c)) c = tolower(c);
// #2 주어진 문자만 문자열로
for (char c : new_id) if (isok(c)) tmp += c;
new_id = "";
// #3 마침표 제거
for (int i = 0; i < tmp.size(); i++)
if (tmp[i] != '.' || (!new_id.empty() && new_id.back() != '.')) new_id += tmp[i];
// #4 마침표가 시작 or 끝이라면 제거
if (new_id.back() == '.') new_id.pop_back();
if (new_id.front() == '.') new_id = new_id.substr(1);
// #5 빈 문자열이면 'a'대입
if (new_id.empty()) new_id.push_back('a');
// #6 문자열 길이 조절 및 마지막 마침표 제거
if (new_id.size() >= 16) new_id = new_id.substr(0, 15);
while (new_id.back() == '.') new_id.pop_back();
// #7 문자열 길이 조절
while (new_id.size() <= 2) new_id += new_id.back();
return new_id;
}
'Algorithm > Programmers' 카테고리의 다른 글
[프로그래머스 2021 KAKAO BLIND RECRUITMENT] 순위 검색 (0) | 2021.01.26 |
---|---|
[프로그래머스 2021 KAKAO BLIND RECRUITMENT] 메뉴 리뉴얼 (0) | 2021.01.26 |
[프로그래머스 2020 카카오 인턴십] 경주로 건설 (0) | 2020.10.31 |
[프로그래머스 2020 카카오 인턴십] 보석 쇼핑 (0) | 2020.10.31 |
[프로그래머스 2020 카카오 인턴십] 수식 최대화 (0) | 2020.10.31 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 2022 KAKAO BLIND RECRUITMENT
- 백준
- 프로그래머스 월간코드챌린지
- 2021 KAKAO BLIND
- 게임이론
- 파싱
- BFS
- 구현
- 트리
- 2022 카카오블라인드
- 프로그래머스 위클리 9주차
- 카카오 2차코딩테스트
- 프로그래머스
- 시뮬레이션
- 2022 카카오 블라인드 코딩테스트
- 카카오 2020 인턴십
- 카카오 인턴십
- DP
- 투포인터
- 유니온파인드
- 2021 카카오 블라인드
- 2020 KAKAO BLIND RECRUITMENT
- 카카오 2021
- Kakaoblind
- 카카오 표 편집
- 이분탐색
- 누적합
- 위클리 챌린지
- 표 편집
- 동적계획법
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함