코딩테스트/코드트리 [코드트리 챌린지] 빙빙 돌며 사각형 채우기 - [문제] https://www.codetree.ai/cote/13/problems/snail-alphabet-square?&utm_source=clipboard&utm_medium=text 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석 국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요. www.codetree.ai [문제 풀이] 달팽이 문제처럼 빙글빙글 돌면서 숫자가 아니라 A 부터 Z까지 반복해서 채우는 문제이다. 빙빙 돌며 사각형 채우기2 문제와 거의 흡사하지만 알파벳을 순서대로 돌려야 하기에 해당 부분을 위해 char alphabet을 만들어주고 A부터 Z까지 가면서 Z를 넘어선순간 A로 돌아오게 만들었다. [회고] . [코드] #include <iostream> using namespace std; int n,m; int dx[4] = {-1,0,1,0}; int dy[4] = {0,1,0,-1}; int visited[101][101]; char arr[101][101]; bool inRange(int x, int y){ if(x >= 0 && x < n && y >= 0 && y < m){ return true; } return false; } int main() { cin>>n>>m; arr[0][0] = 'A'; visited[0][0] = 1; int idx = 1; int x = 0, y = 0; int dict = 1; char alphabet = 'B'; for(;idx <n * m;){ int nextX = x + dx[dict]; int nextY = y + dy[dict]; if(inRange(nextX,nextY) == false || visited[nextX][nextY] != 0){ dict = (dict + 1) % 4; continue; } idx++; x = nextX; y = nextY; arr[x][y] = alphabet; visited[x][y] = 1; alphabet++; if(alphabet > 'Z'){ alphabet = 'A'; } } for(int i = 0;i<n;i++){ for(int j = 0; j<m;j++){ cout<<arr[i][j]<<" "; } cout<<endl; } return 0; } 공유하기 URL 복사카카오톡 공유페이스북 공유엑스 공유 게시글 관리 구독하기Yoon-1212 Contents 당신이 좋아할만한 콘텐츠 [코드트리 챌린지] 이동경로상에 있는 모든 숫자 더하기 2023.09.08 [코드트리 챌린지] 가운데에서 시작하여 빙빙 돌기 2023.09.08 [코드트리 챌린지] 빙빙 돌며 숫자 사각형 채우기 2 2023.09.08 [코드트리 챌린지] 거울에 레이저 쏘기 2 2023.09.08 댓글 1 + 이전 댓글 더보기