본문 바로가기

전체 글

(47)
BOJ 1697 숨바꼭질 BFS - BFS - 큐 이용 - for문 + dx 좌표 잡는 대신, 가능한 3번의 경우를 모두 큐에 넣어버림 https://www.acmicpc.net/problem/1697 #include #include #include using namespace std; int visited[100000]={0}; int t[100000]={0}; // 시간 측정 int main(){ int st, en; int cnt=0; scanf("%d %d", &st, &en); visited[st]=1; // 현재 위치를 1로 // BFS queue q; q.push(st); visited[st]=1; while(!q.empty()){ int cur = q.front(); q.pop(); // 3방향 // cur - 1 int..
BOJ 1012 유기농 배추 DFS - DFS + cnt 구하기 - 기본적인 문제. 섬의 갯수(BOJ 4963)와 매우 유사한 문제 https://www.acmicpc.net/problem/1012 #include #include using namespace std; int field[55][55]; // 배추 밭 int visited[55][55]; int m,n; int dx[4] = {0, 0, -1, 1}; int dy[4] = {-1, 1, 0, 0}; //DFS void dfs(int x, int y, int cnt){ visited[x][y]=cnt; for(int i=0; i=0 && nx=0 && ny
BOJ 1926 그림 - DFS https://www.acmicpc.net/problem/1926 - BFS DFS 모두 가능하지만 DFS를 이용하여 풀었다 - 그림의 갯수는 cnt를 이용하여 출력할 수 있지만 가장 큰 그림의 크기를 구하기 위해 ans[502*502]를 선언했다. - 아직도 DFS가 헷갈려 ㅠㅠ #include #include using namespace std; int board[502][502]; int visited[502][502]; int n, m; // 1st input int dx[4] = {-1, 0, 1, 0}; int dy[4] = {0, -1, 0, 1}; int ans[502*502]={0}; void dfs(int x, int y, int cnt){ visited[x][y] = cnt; // 방..
BOJ 7576 토마토 - BFS - 불어나는 익은 토마토. - 최단시간을 구해야하기 때문에 BFS - 가로X세로 잘 보자. 인덱스 조심! - 시작점이 여러개 일 수 있기 때문에, 가능한 시작점 모두 큐에 넣는다. https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N 은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토들의 정보가 주어진다. 즉, 둘째 줄부터 N개의 줄에는 상자에 담긴 토마토의 정보가 주어진다. 하나의 줄에는 상자 가로줄에 들어있는 토마토의 상태가 M개의 정수로 주어진다. 정수 1은 익은 토마토, 정수 0은 익지 않은 토마토, 정..
BOJ 2178 미로 탐색 - BFS - (1,1)에서 (N,M)으로 가는 "가장 빠른 길"을 구하는 문제 - 가장 빠른 길을 구해야 할 때는 DFS 탐색은 사용X = 최단거리 보장X - BFS는 모든 가중치가 1일때 좋은 성능을 보임 DFS, BFS => 목적은 모든 정점을 한번 씩 방문한다 - 최단거리를 구하기 위해 dist[][] 를 만들어 거리 저장 https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net #include #include #include using namespace std; int map[110][..
[JavaScrirpt] 유효범위 #함수 : 모듈화의 근간#유효범위(scope) : 변수의 수명 지역(local)변수 : 함수 내에서 변수를 선언한 것, {} 안쪽.전역(global)변수 : 함수 밖에서 변수를 선언한 것.*전역변수보다 지역변수를 사용하자!123456789101112var vscope = 'global';function fscope(){ alert(vscope);}fscope(); //global 출력 var vscope = 'global';function fscope(){ var vscope = 'local'; alert(vscope);}fscope(); //local 출력cs # 유효범위의 효용12345678910111213141516function a (){ var i = 0;}for(var i = 0; i
[JavaScript] 정규표현식 # 정규표현식(regular expression) : 문자열에서 특정한 문자를 찾아내는 도구, 일종의 언어.# 컴파일 : 패턴을 찾는 것# 실행 : 대상(패턴)에 대해 어떠한 작업을 구체적으로 하는 것 # 정규표현식 리터럴123var str = "a";var pattern = /a/; //찾고자 하는 것(대상)을 /~/에 넣어준다.var pattern - new RegExp('a'); //Regular Expression의 약자, 찾고자 하는 것 a. 정규표현식을 통해 하는 중요한 작업 : (필요한 정보를)추출, test, (찾아낸 정보를 123var pattern = /a/; //문자열 a를 찾고 싶다.pattern.exec('abcde'); //실행의 대상 : 'abcde'["a"]Colored by..