4-f질문입니다.
416
작성한 질문수 134
일단 문제는 이해를 했는데 코드를 이해를 1도 못하겠습니다...
학교를 다니고있는데 문제를 도저히 못풀경우 해설을 듣고 이해가 될때까지 붙잡아야 하나요? 아니면 해설강의를 듣고 다른 강의를 들으러 가야하나요??
답변 1
1
안녕하세요 stark님 ㅎㅎ
학교를 다니고있는데 문제를 도저히 못풀경우 해설을 듣고 이해가 될때까지 붙잡아야 하나요?
>> 해당 해설 강의 손코딩 해놓으시고 학교 자투리시간마다 손코딩을 봐주세요. 그리고 진도는 나가 주시구요. 그렇게 계속해서 손으로 써놓은 코드 및 설명 써놓은 거 보면 어느샌가 이해가 되실겁니다.
아니면 해설강의를 듣고 다른 강의를 들으러 가야하나요??
>> 이해가 안될 때는 다른 강의 먼저 듣는게 더 좋습니다.
추가적으로 4 - f를 어떤 식으로 손코딩해서 공부하는게 좋은지 알려드리자면..
이렇게 주석을 달고 해당 코드 옆에 이해가 되는 이미지를 그려놓고 공부하시면 됩니다.
#include <bits/stdc++.h>
using namespace std;
int n, m, words[51];
string s;
int count(int mask) {
int cnt = 0;
for (int word : words) {
if(word && (word & mask) == word)cnt++;
}
return cnt;
}
int go(int index, int k, int mask) {
//일단 k가 음수면 안되겠죠?
if (k < 0) return 0;
//26 모든 알파벳을 탐색했어 그럼 카운팅스타~
if (index == 26) return count(mask);
//go라는 함수. index + 1하면서 ~~ 이 알파벳을 배우는 경우 k - 1이 되겠네?
// 비트마스킹 때 배운 해당 인덱스 추가하는거 | 1 << index!!
int ret = go(index+1, k-1, mask | (1 << index));
//a, n, t, i, c 는 무조건 배우는 거라 이거는 배우지 않으면 안돼!!
// 이 부분은 배우지 않은 경우 k가 k로 다시 넘기는 경우!
if (index != 'a'-'a' && index != 'n'-'a' && index != 't'-'a' && index != 'i'-'a' && index != 'c'-'a') {
ret = max(ret, go(index+1, k, mask));
}
return ret;
}
int main() {
cin >> n >> m;
for (int i=0; i<n; i++) {
cin >> s;
//자! 비트로 넣어 볼꺼야 a는 1, b는 2 이렇게 추가해보자.
for (char str : s) {
words[i] |= (1 << (str - 'a'));
}
}
cout << go(0, m, 0) << '\n';
return 0;
}
이런식으로요. 화살표, 자신이 이해한 바 등을 써주시면서 공부하시면 충분히 일주일 안에 이해하실 수 있으실거에요. 꾸준히 계속해서 봐주시면서 이해하려고 노력해주세요.
감사합니다.
코딩 살구 클럽 컴파일 에러
0
4
1
추천 문제
0
7
1
코딩살구클럽 승인
0
9
1
코살구 1주차 1940번 문제 조건과 프라이빗 테스트 불일치 문의
0
21
2
문제를 고민하는 시간 관련
0
26
2
코딩살구클럽
0
38
2
코딩살구클럽 문의
0
37
2
코딩살구클럽 승인
0
35
2
DP 경우의 수 설명이 이해가 되지 않습니다.
0
33
2
3-F 채점 관련 질문
0
31
1
BFS, DFS 활용이 되는 상황에서의 방향성
0
33
2
코딩살구클럽 승인
0
45
2
코딩살구클럽승인
0
39
3
코딩살구클럽 승인
0
54
2
3-D 관련 질문
0
35
2
코살구 회원가입 문의
0
45
2
코살구 로그인 문제
0
65
2
3-A 문제 풀이 관련 질문
0
56
3
2-O 질문 있습니다
0
38
2
2-T 문제에 관한 질문
0
40
2
코딩 살구 클럽 접속 및 사용방법 문의
0
63
2
안녕하세요~. 현재 코살코딩클럽 사이트가 접속이 안됩니다~
0
67
2
코딩살구클럽 로그인문제
0
85
3
코딩 살구 클럽 로그인 문제
0
86
2





