일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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++
- hackerrank
- spring
- 스프링프레임워크
- c
- 블로그개설
- vue.js
- 백준
- 머신러닝
- 프로그래밍
- TensorFlow
- 인코더
- ADAS
- 프로그래머스
- 스프링 프레임워크
- 카카오인코더
- 안드로이드
- 스프링
- python3
- Rebase
- BFS
- Kotlin
- 백트래킹
- DP
- 연결리스트
- stl
- git
- Android
- retrofit
- Map
Archives
- Today
- Total
이것저것 공부한 기록
C++) HackerRank 풀이_Alternating Characters 본문
문제 자체는 간단한데 푸는 방법을 새롭게 알아서 포스팅하기.
원래대로... 각 문자가 있는지 없는지 2중 for문을 무식하게 돌렸는디
이번에 그렇게 짰더니 인풋 string 최대 길이가 10의 5승이라서 그런가 시간초과가 3문제.
뭐지? 하고 Help를 요청했더니
매우 간단한 방법이 있었다.
어짜피 알파벳 체크이고, input도 소문자로 고정되어 있기 때문에
소문자의 아스키코드를 가지는 배열을 만들어
숫자를 체크하는것 ㅎ...
#include <bits/stdc++.h>
using namespace std;
// Complete the twoStrings function below.
string twoStrings(string s1, string s2) {
int alp[26] = {0,};
int len1 = s1.length();
int len2 = s2.length();
for( int i = 0 ; i < len1 ; ++ i)
{
alp[s1[i]-'a'] ++ ;
}
for( int i = 0 ; i < len2 ; ++ i )
{
if( alp[s2[i]-'a'] > 0)
{
return "YES";
}
}
return "NO";
}
int main()
{
ofstream fout(getenv("OUTPUT_PATH"));
int q;
cin >> q;
cin.ignore(numeric_limits<streamsize>::max(), '\n');
for (int q_itr = 0; q_itr < q; q_itr++) {
string s1;
getline(cin, s1);
string s2;
getline(cin, s2);
string result = twoStrings(s1, s2);
fout << result << "\n";
}
fout.close();
return 0;
}
'Study > 프로그래밍 문제풀이' 카테고리의 다른 글
C) 프로그래머스 풀이_자연수 뒤집어 배열로 만들기 (0) | 2019.10.26 |
---|---|
C++) 프로그래머스_전화번호 목록 (0) | 2019.10.26 |
C++) HackerRank 풀이_Hash Tables : Ransom Note (0) | 2019.10.25 |
C++) 프로그래머스 문제 풀이_다음 큰 숫자 (0) | 2019.10.24 |
C++) 프로그래머스 문제 풀이_콜라스 추측 (0) | 2019.10.24 |