Challenge
Careers
Class
Connect
로그인 후 문제풀이가 가능합니다.
JS
const fs = require('fs'); const [range, ...input] = fs.readFileSync('input.txt', 'utf8').trim().split('\n'); let box = input.map(v => v.split('').map(Number)); let nextGroup = 2; const count = [0,0]; function DFS(x, y) { box[x][y] = nextGroup; count[nextGroup]++; if (box[x - 1] && box[x - 1][y] === 1) DFS(x - 1, y); if (box[x + 1] && box[x + 1][y] === 1) DFS(x + 1, y); if (box[x] && box[x][y + 1] === 1) DFS(x, y + 1); if (box[x] && box[x][y -...
C++ 코드 공유합니다.
#include <algorithm> #include <cstdio> #include <cstdint> #include <iostream> #include <string> #include <vector> #define NUM_DIRS 4 #define DIR_OFFSET_X 0 #define DIR_OFFSET_Y 1 using namespace std; static int map_size; static vector<vector<int>> map; static int DIRS[NUM_DIRS][2] = { {-1, 0}, {0, -1}, {1, 0}, {0, 1} }; // Left, Top, Right, Bottom int seek_region(int x, int y, int region_size = 0) { map[y][x] = 0; for(int i = 0; i < NUM_DIRS; ++i...
c언어 코드 공유
#include <stdio.h> void swap(int* pa,int* pb){ int temp=*pa; *pa=*pb; *pb=temp; } int squar[25][25]={0}; int check[25][25]={0}; int cnt=0; int N; int ans[25*25]; int dx[]={1,-1,0,0}; int dy[]={0,0,1,-1}; void dfs(int x,int y){ check[x][y]=1; cnt++; for (int i=0;i<4;i++){ int xx=x+dx[i]; int yy=y+dy[i]; if(xx<0||yy<0||xx>=N||yy>=N||squar[xx][yy]==0) continue; if(check[xx][yy]==0) { check[xx][yy]=1; dfs(xx,yy); } } } int main(void) { scanf("%d",&N); for(int i=0;i<N;i++){ for (int j=0;j<N;j++){/...
솔직한 문제 난이도 판단
저는 고민 하느라 4시간 정도 걸린거 같은데 다들 이 문제 난이도가 솔직하게 어느 정도로 느껴지는지 궁금해서 질문드립니다.
어디서 문제가 발생했는지 모르겠습니다 ㅠ c언어
제출 답안 C #include <stdio.h> #include <math.h> int visited[30][30]; int n[30][30]; int dx[4]={0,0,-1,1}; int dy[4]={-1,1,0,0}; int obstacle[625]; void DFS(int curi, int curj, int obs){ visited[curi][curj]=1; obstacle[obs-1]+=1; for (int k=0;k<4;k++){ int nexi=curi+dx[k]; int nexj=curj+dy[k]; if (n[nexi][nexj]==1 && visited[nexi][nexj]==0){ DFS(nexi,nexj,obs); } } } int main(void) { int block_num,pre_num; scanf("%d",&block_num); ...
장애물 인식 프로그램 TC4
고민고민하다 도저히 모르겠어서 올립니다.. 나머진 다 괜찮은데 TC4에서만 메모리 초과가 발생하네요 특정 케이스만 안되는거면 반례가 분명 있는거 같은데 혹시 알려주실 분 계신가요 ㅜㅜ import java.io.*; import java.util.*; public class Main { // m - 장애물 크기 // res - 장애물 크기 저장하는 배열 static int n, m; static int[][] map; static List<Integer> res; static Queue<Point> q; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer s...
장애물 인식 프로그램 js
tc1, 2, 5를 빼면 다 오답인데 어디서 틀린 건지 감이 안오네요 ㅠㅠ 반례 찾아주시면 감사하겠습니다!! const fs = require('fs'); const input = fs.readFileSync('/dev/stdin').toString().trim().split("\n").map(e => e.split("").map(Number)); const N = input.shift(); const dx = [-1, 1, 0, 0]; const dy = [0, 0, -1, 1]; const result = []; const bfs = (x, y) => { let count = 0; const queue = []; queue.push([x, y]); input[x][y] = 0; while(queue.length) { const [x, y] = queue.shift(); co...
장애물인식프로그램 문제
#include <stdio.h> int visited[26][26]; // 방문 여부 체크 int map[26][26]; int numb=0; int num[700]={0,}; int as=0; int DFS(int row,int col, int n){ for(int i=-1; i<=1; i++){ for (int j=-1; j<=1; j++) { if((map[row+i][col+j] == 1 )&& (visited[row+i][col+j] == 0) &&(1<=row+i &&row+i<=n )&&(1<=col+j &&col+j<=n) ){ visited[row+i][col+j] = 1; numb++ ; DFS(row+i, col+j,n); } } } } int main(void) { int M =0; int k =0; int temp=0; scanf("%d", &M); for (int i =1; i<=M ;i++) { for (int j=1 ; j<=M ;j++) { sc...
장애물 인식 프로그램
Visual studio에서 디버깅 하면 맞는것 같은데 소프티어에서는 오답으로 나오네요. 어느 부분이 문제일까요..? #include #include #include using namespace std; static int n, cnt=0; static vector> Arry; static vector> Visited; static vector CountList; static int dx[] = {0, 0, -1, 1}; static int dy[] = {-1, 1, 0, 0}; void DFS(int x, int y) { for (int i = 0 ; i < 4 ; i++) { int nx = x + dx[i]; int ny = y + dy[i]; if( nx < 0 || ny< 0 || nx >= n || ny >= n || Arry[nx][ny] == 0 ) continue; if( Visited[nx][ny]) continue; Visited[nx][n...
장애물 인식 프로그램 런타임 에러가 어느 부분에서 나는지 모르겠습니다..
import sys input = sys.stdin.readline n = int(input()) mp = [[0]*n for i in range(n)] for i in range(n): tmp = list(map(int,input().rstrip())) for j in range(n): mp[i][j]=tmp[j] dx=[-1,1,0,0] dy=[0,0,-1,1] visited = [[0]*n for i in range(n)] stack = [] ans=[] blocks =0 while True: cnt=0 for i in range(n): for j in range(n): if visited[i][j]==0 and mp[i][j]==1: stack.append((i,j)) break...