inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

4-F

4-F 코드비교

해결된 질문

45

Jh P

작성한 질문수 16

0

강사님 안녕하십니까!
수업 너무 재밌게 잘 듣고 있습니다.

4-F를 풀어보고 강사님 코드와 비교했을때 강사님 코드가 짧고 간결해 보입니다.

우선 제가 한 풀이는 비트마스킹으로 반드시 배워야할 단어 갯수 5개를 제외하고 나머지 단어들은 조합으로 고르고 나서 그 조합을 바탕으로 하나씩 대입해보는 구조로 로직을 구현했습니다.

저는 문제를 풀때 실력이 부족하여 묶어서 한번에 구현하는게 어렵게 느껴집니다. 그래서 이렇게 단계별로 로직을 짜서 중간에 테스트하면서 완성합니다. 허나 이렇게 풀이를 하였을 때 강사님 코드와 비교하면 항상 조금 더 코드가 길거나 복잡한 감이 있습니다.
우선 지금 문제를 제가 푼 풀이 방법으로 했을 때 문제점이 있을까요? 문제점이 없어도 강사님 코드처럼 간결하게 짜는 연습이 중요할까요? 코드 한번 봐주시고 평가해주시면 정말 감사하겠습니다!
http://boj.kr/e82932716dc04cf2804eba50bd7a2aa6

 

추가로 한달 전까지만 해도 자료구조, 알고리즘을 기초도 제대로 못 갖췄는데 항상 좋은 강의와 답변을 해주셔서 실력이 늘고 있습니다 중간 중간 풀이 팁들을 적용할때 마다 매번 감사함을 느낍니다 ㅎㅎ
그럼 좋은 하루 보내시길 바랍니다!

c++ 코딩-테스트

답변 1

0

큰돌

안녕하세요 ㅎㅎ

코드 잘 짜셨네요 ㅎㅎ

저처럼 간결하게 짜는 것은 그렇게 중요하지 않습니다.

정확하고 효율적으로 짜는게 중요한데요 수강생님 코드는 그러한 코드인 것 같습니다.

void combi(int start, vector<int> &b){
	if(b.size() == k-5){

k-5로 한 것 너무 좋습니다.

 

int solve(vector<int> b){
	int cnt = 0;
	int ret = (1 << 0) + (1 << 2) + (1 << 8) + (1 << 13) + (1<<19);
	for(int i : b) ret|=(1 << i);
	
	for(int i = 0; i < n; i++){
		if( (ret | a[i]) <= ret) cnt ++;
	}
	return cnt;
}

solve 부분에서 비트연산자를 통해서 ret에 합집합을 만들고 카운팅 로직을 넣은 점. 훌륭합니다.

다만 저기서 b의 경우 다른 문제의 경우 더 많은 요소들을 가지고 있다면 -> &b로 넘기는게 더 효율적입니다.

이부분은 교안내의 다음 부분 참고부탁드립니다.

스크린샷 2025-08-09 오후 12.20.45.png.webp

 

 

우선 지금 문제를 제가 푼 풀이 방법으로 했을 때 문제점이 있을까요? 문제점이 없어도 강사님 코드처럼 간결하게 짜는 연습이 중요할까요?

-> 문제점은 없습니다. 그냥 저의 코드라는 해결방안이 하나 더 있구나 생각하시면 됩니다.

combi() 의 경우 비트마스킹으로 하면 더 간결하게 할 수 있구나 하면서 현재 코드에서 -> for문을 사용한 비트마스킹으로 연습 2번정도만 하시면 될 것 같습니다.

 

그럼 좋은 하루 보내시길 바랍니다!

-> 도움이 되셨다니 저도 마음이 좋네요 ㅎㅎ 수강생님도 좋은 주말보내세요~

 


 

또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.

1-O 코딩살구클럽 채점관련 질문

0

8

1

히든 테스트 케이스가 사라졌습니다

0

10

0

채점서버 혹시 다른 언어 지원도 가능하게 해주실 수 있나요

1

25

0

살구 클럽 채점 관련 문의(테스트 케이스)

0

26

1

1-H 문제 채점하기 오류

0

18

2

코딩살구클럽 2주차 2-L 문제 채점하기 오류

0

25

2

살구 클럽 채점 관련 문의

0

32

2

코딩 살구 클럽 실전 세션

0

27

2

코딩살구클럽 채점 관련 질문

0

34

2

코딩살구클럽 컴파일에러

0

63

2

5-B

0

46

2

4 - A

0

48

2

코딩살구클럽 입장이 안됩니다

0

108

2

4-F 경우의 수 질문입니다.

0

47

2

코딩살구클럽 가입이 안됩니다.

0

105

2

살구 클럽에 대한 질문있습ㄴ디ㅏ

0

73

1

교안 158페이지 문의드립니다

0

53

2

코딩살구클럽 관련 건의사항

0

148

1

코살에 19942 다이어트 문제에 N의 범위가 빠져있슴니다

0

54

1

진행 방법 질문드립니다!

0

98

2

2-I) 왜 이 문제가 그래프이론 카테고리에 있는지 잘 모르겠습니다.

0

65

2

2주차 개념#12 트리 순회

0

34

2

백준사이트가 종료된다고 합니다.

0

330

2

백준 서비스 종료

9

999

1