inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

1~2주차 질문드립니다

307

sam7755

작성한 질문수 9

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

 

 

1~2주차 에서 세문제가 백준에 계속 질문해도 뚜렷한 해결방법이 안나와서 질문드립니다ㅠㅠ

 

 //1620 시간초과


int main(){
int a,b;
cin>>a>>b;
string arr[100000];


for(int i=0;i<a;i++){
	cin>>arr[i];
}

for(int i=0;i<b;i++){
	string s;
	cin>>s;
	
	if(s[0]<65){
		int p=stoi(s);
		cout<<arr[p-1]<<endl;
	}
	else{
		for(int j=0;j<a;j++){
			if(s==arr[j]) cout<<j+1<<endl;
		}
	}
}



return 0;
}

 //4659 출력형식이 잘못되었습니다



bool go(char p){
	
	if(p=='a'||p=='e'||p=='o'||p=='i'||p=='u') return 1;
	
	return 0;}

int main(){
string s;
while(1){

	cin>>s;
	if(s=="end") break;
	
	int a=0; 
	int b=0;
	int c=0;
	for(int i=0;i<s.size();i++){
		
	if(go(s[i])==1) a++;
	if(i>1&&go(s[i])==go(s[i-1])&&go(s[i-1])==go(s[i-2])) b++;
	if(i>0&&s[i]!='e'&&s[i]!='o'&&s[i]==s[i-1]) c++;
		
	}
	
	
	
	
	if(a>0&&b==0&&c==0) cout<<"<"<<s<<"> is acceptable."<<endl;
	else cout<<"<"<<s<<"> is  not acceptable."<<endl;
	
}




return 0;}

 //1189 메모리 초과



int dx[4]={0,1,0,-1};
int dy[4]={-1,0,1,0};//
bool visited[5][5]={0,};//
int x,y,m,n,k;
char arr[6][6]={0,};

int sum=0;
int dfs(int q,int w){


	
if(q==0&&w==m-1){
	if(visited[q][w]==k) sum++;
	
	return 0;
}

for(int i=0;i<4;i++){
 y=q+dy[i];
 x=w+dx[i];
if(y < 0 || x < 0 || y >=n || x >= m) continue;
if(!visited[y][x]&&arr[y][x]!='T'){

dfs(y,x);
visited[y][x]=visited[q][w]+1;
visited[q][w]=0;

}	
}


return 0;
}




int main(){

	
	cin>>n>>m>>k;
	
	for(int i=0;i<n;i++){
		for(int j=0;j<m;j++){
			cin>>arr[i][j];//
		}
	}
	
	visited[n-1][0]=1;
	dfs(n-1,0);
	

cout<<sum<<endl;

	return 0;
}

C++ 코테 준비 같이 해요!

답변 1

0

큰돌

안녕하세요 kim님ㅎㅎ

1620

문제를 잠깐볼까요?

N과 M은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수

자, 그러면 이 코드의 시간복잡도는 얼마일까요? b, a루프 합쳐서.

for(int i=0;i<b;i++){
	string s;
	cin>>s;
	
	if(s[0]<65){
		int p=stoi(s);
		cout<<arr[p-1]<<endl;
	}
	else{
		for(int j=0;j<a;j++){

4659

제가 지금 보기에는 맞는 것같습니다. 제가 아래의 글을 남겼는데 해당 내용 참고해서 다시 부탁드립니다.

1189

dfs(y,x);
visited[y][x]=visited[q][w]+1;
visited[q][w]=0;

이 코드요.

dfs를 하고 visited를 거는게 맞을까요?

 

 

kim님 솔직히 이렇게 올려주시면 제가 디버깅하기가 너무 어렵습니다...

kim님이 제출하신 코드 있죠?

백준 - 문제 - 내제출탭에 보면 코드 오른쪽 아래에 공유하기 버튼이 있는데 그 버튼을 클릭하셔서 위 3가지 문제에 대한 링크 부탁드립니다.

참고로 해당 내용은 "0주차 - 질문하는 법"에 설명되어있습니다. 해당 강의 참고해주셔서 다음부터는 그렇게 올려주세요.

감사합니다.

1-E질문입니다!

0

515

2

3-L 틀린 부분 피드백 부탁드립니다.

0

816

2

1-A문제 순열재귀함수 질문입니다.

0

380

1

1-A 일곱난쟁이문제입니다

0

454

1

문제 풀 때 방향성에 대해

0

797

1

맥에서 vs code로 실행 관련 질문입니다

0

520

1

17071번 메모리 초과

0

385

1

1-C질문입니다!

0

417

2

2-B BFS 시간초과질문

0

629

2

1-O 13번 라인

0

439

1

6-J 놀이공원 문제 질문

0

380

1

구현관련 질문

0

482

1

강의 교안

0

317

1

실력을 더 올리고나서 강의를 보는 것이 맞을까요?

0

545

1

안녕하세요! 재귀함수에 관해서 질문드립니다

0

535

1

1-K

0

472

2

3-G번 질문있습니다.

1

472

3

3-C 실행 시간 질문드립니다.

0

492

1

4-A 문제 풀이 질문있습니다.

0

590

2

비트마스킹 연산자 "1의 보수" 영문 표기법

0

433

1

격자탐색 문제에서 BFS 시간복잡도 질문드립니다.

0

333

1

3-O go 함수 질문 드립니다.

1

444

2

4-A 출력 질문

0

302

1

1주차 1-O 질문드립니다

0

254

1