티스토리 뷰
https://www.acmicpc.net/problem/5555
5555번: 반지
당신은 N개의 반지를 가지고 있다. 각각의 반지는 대문자 10 문자로 이루어진 문자열이 새겨져 있다. 반지는 문자열의 시작과 끝이 연결된 형태로 문자가 새겨져 있다. 반지에 각인된 문자열을
www.acmicpc.net
새로운 함수를 알게 되서 작성하려 한다.
문제 접근부터 알아보자.
반지형태로 문자가 연결되어 있다는 사실을 알아야 한다. 그렇기 때문에 입력된 문자열에 그 문자열을 더한 문자열안에 입력된 문자가 있는지 확인해야 한다.
1. 반지에 있는 문자열을 이어준다.
2. 이어준 문자열에 찾고자 하는 문자열이 있는지 확인한다.
1. 반지에 있는 문자열을 이어줘야 한다. 그 과정에서 strcat함수를 사용한다. strcat함수는 입력받을 문자열의 크기가 보다 더 커야 한다. 만약 크기까지 이어주려 한다면 strncat을 사용해 주어야 한다.
2. 찾고자 하는 문자열이 있는지 확인하는 것은 strstr을 사용한다. 이전에 알아봤던 함수이므로 넘어간다.
코드는 다음과 같다.
#include <cstdio>
#include <cstring>
int main(void) {
char word[11];
int turn;
scanf("%s", word);
scanf("%d", &turn);
int count = 0;
char result[21];
for (int i = 0; i < turn; i++) {
char ring[21]; scanf("%s", ring);
strcpy(result, ring);
strcat(result, ring);
if (strstr(result, word)) count++;
}
printf("%d", count);
}
다음 블로그를 참고하도록 하자.
[C++] cstring
라이브러리 사용 - #include cstring 함수들 void* memcpy(void* s1, const void* s2, size_t n); void* memmove(void* s1, const void* s2, size_t n); char* strcpy(char* s1, const char* s2); char* strncpy(c..
jhcard.tistory.com
'코딩테스트 > Silver 5' 카테고리의 다른 글
[S5] 7785. 회사에 있는 사람 (0) | 2022.06.27 |
---|---|
[S5] 2161. 카드1 (0) | 2022.06.27 |
[S5] 10826. 피보나치 수 4 (0) | 2022.06.26 |
[S5] 2018. 수들의 합 5 (0) | 2022.06.24 |
[S5] 2535. 아시아 정보올림피아드 (0) | 2022.06.24 |
- Total
- Today
- Yesterday
- fread
- tsp알고리즘
- 좌표 압축 알고리즘
- readString
- scanf
- Witcher3
- manber myers
- ios::sync_with_stdio(false)
- unistd.h
- 피보나치
- writeString
- 행렬 멱법
- readInt
- portal1
- fastIo
- 큰 수 계산
- 해시맵
- 플로이드-워셜
- Set
- cin.tie(nullptr);
- writeInt
- 확장 유클리드
- 트리보나치
- bits/stdc++.h
- SCC 알고리즘
- deque와 vector의 차이
- 에라토스테네스의 체
- 분할정복
- 비트마스킹
- list
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |