본문 바로가기

자료 구조16

[백준 9935] 문자열 폭발 [C] 풀이 문자열의 길이가 폭발 문자열의 길이보다 크거나 같을 때, 폭발 문자열을 포함하고 있으면, 폭발 문자열의 길이만큼 index를 감소시키는 방식으로 출력할 문자열을 만들어주었다. 최종적인 index만큼 출력을 해줘도 되고, 마지막에 '\0'을 삽입해 문자열의 끝을 알려줘도 된다. 소스코드 #include #include char str[1000001], ans[1000001], explosion[37]; int main(){ scanf("%s %s", str, explosion); int len = strlen(str), exp_len = strlen(explosion), idx = 0; for (int i = 0; i = e.. 2021. 8. 24.
[백준 17219] 비밀번호 찾기 [C++] 풀이 map을 사용해 간단히 풀이했다. 소스코드 #include #include #include using namespace std; int main(){ cin.tie(NULL); ios_base :: sync_with_stdio(0); int N, M; cin >> N >> M; map info; string site, pw; while (N--){ cin >> site >> pw; info[site] = pw; } while (M--){ cin >> site; cout 2021. 8. 14.
[백준 5430] AC [C] 풀이 입력부터 애먹은 문제다. "[ , , ]"를 문자열로 입력받아서 해결해도 되지만, 정수만 입력받기 위해 ' [ ', ' ] '가 입력될 때는 getchar()로 buffer를 비워 다음 입력에 영향이 안가도록 했다. getchar(); for (int i = 0; i < n; i++) scanf("%d,", &x[i]); getchar(); error가 뜨는 경우는 다음과 같다. n = 0일 때 n = 0이 아니지만, p에 입력받은 D의 개수보다 n이 작을 때 2번째 조건을 확인하기 위해 n을 감소시켜 반복문이 끝나기 전에 1번째 조건으로 유도하는 방법으로 구현했다. for (int i = 0; p[i] != '\0'; i++){ if (p[i] == 'R') reverse = reverse ? 0.. 2021. 8. 9.
[백준 1764] 듣보잡 [C/C++] 풀이 알고리즘은 엄청 간단하다. N명의 이름을 입력받아서 정렬 후, M명의 이름을 입력받아 이진탐색으로 찾은 명단과 총 인원을 출력하면 된다. 하지만, 이를 C로 구현하는 것은 끔찍하다... 소스코드 #include #include #include #include using namespace std; int main(){ int N, M, i; scanf("%d %d", &N, &M); vector v1(N), v2; char name[21]; for (i = 0; i < N; i++){ scanf("%s", name); v1[i] = name; } sort(v1.begin(), v1.end()); for (i = 0; i < M; i++) { scanf("%s", name); if (binary_sea.. 2021. 8. 6.