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
- c
- WarGame
- 드림핵
- 파이썬
- hackctf
- 숙명여자대학교 정보보안동아리
- lob
- 생활코딩
- PHP 웹페이지 만들기
- Javascript
- The Loard of BOF
- SWEA
- CSS
- siss
- 머신러닝
- Sookmyung Information Security Study
- 자료구조 복습
- hackerrank
- HTML
- 백준
- 웹페이지 만들기
- BOJ Python
- Python
- BOJ
- 풀이
- XSS Game
- C언어
- 숙명여자대학교 정보보안 동아리
- 기계학습
- c++
Archives
- Today
- Total
혜랑's STORY
[HackerRank] Strong Password 본문
6주차 자유 문제
Prepare > Algorithms > Strings
풀이
문제에서 요구하는 것은 주어진 조건을 만족하기 위해 추가해야 할 최소한의 문자이다. 문제에 주어진 조건을 checkList로 만들어 두고, 이 조건을 만족하는지 확인하기 위해 check 배열을 만들어 주었다. 코드는 간단히 살펴볼 수 있다. 각 조건에 만족하는 값이 password에 있다면 check에 true를 넣고 다음 조건을 검사하는 방식이다. 최종적으로 !check[i]를 만족하는 즉, 문자를 추가해야 하는 수를 센다. 이때 바로 이 값을 넘기는 것이 아니라 password 최소 길이인 6을 만족하는지 검사하게 된다. 만약, 길이를 만족하지 못하고 부족한 길이 만큼이 미리 계산해둔 cnt보다 크다면 cnt는 부족한 길이 만큼의 수가 된다.
코드는 다음과 같다.
int minimumNumber(int n, string password) {
// Return the minimum number of characters to make the password strong
int cnt, idx;
bool check[4] = {false,};
string checkList[] = {"0123456789", "abcdefghijklmnopqrstuvwxyz", "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "!@#$%^&*()-+"};
for(int i=0; i<4; i++){
idx = 0;
for(int j=0; j<checkList[i].length(); j++){
for(int k=0; k<password.length(); k++){
if(checkList[i][j] == password[k]){
cout << checkList[i][j] <<" "<<password[idx]<<endl;
check[i] = true;
break;
}
}
}
}
cnt = 0;
for(int i=0; i<4; i++){
cout << check[i]<<endl;
if(!check[i]) ++cnt;
}
if(password.length() < 6){
if(cnt < 6 - password.length())
cnt = 6 - password.length();
}
return cnt;
}
결과
'2021 SISS 21기 활동 > 2학기 C' 카테고리의 다른 글
[HackerRank] Binary Search Tree : Insertion (0) | 2021.11.21 |
---|---|
[HackerRank] Running Time of Algorithms (0) | 2021.11.08 |
[HackerRank] The Full Counting Sort (0) | 2021.10.06 |
[HackerRank] Correctness and the Loop Invariant (0) | 2021.10.06 |
[HackerRank] Combo Meal (0) | 2021.10.01 |