일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 브루트 포스
- 대구맛집
- BFS
- 백준
- 서울맛집
- programmers
- 대구삼겹살
- 수성못맛집
- oracle
- 압구정데이트
- C#
- 오라클
- 대구데이트
- 대구고깃집
- 앞산카페
- 들안길삼겹살
- 범어동맛집
- 안지랑카페
- SQL
- 대구카페
- 대명동맛집
- 프로그래머스
- 조건문
- 별찍기
- 반복문
- 수성못삼겹살
- 수성구맛집
- 수성구데이트
- 큐
- 정렬
- Today
- Total
모든 일상
C# 백준 1696번 문제 숨바꼭질 본문
using System;
using System.Collections;
using System.Collections.Generic;
namespace ConsoleApp3
{
public class Program
{
static void Main(string[] args)
{
string[] input_data = Console.ReadLine().Split();
int start = int.Parse(input_data[0]);
int end = int.Parse(input_data[1]);
int[] visit = new int[200001]; // 0 <= 범위 <= 100000 에서 순간이동 즉 x2 가 가능하기 때문에 2배 크기 선언
Queue<(int,int)> q_x = new Queue<(int, int)> (); // x축 위치, 이동 횟수
int result = 0;
q_x.Enqueue((start,0));
while(q_x.Count != 0)
{
var check_x = q_x.Dequeue();
int x = check_x.Item1;
int cnt = check_x.Item2;
if (x < 0 || x > 100001) continue;
if (visit[x] == 1) continue;
visit[x] = 1;
if (x == end)
{
result = cnt;
break;
}
q_x.Enqueue((x*2, cnt + 1));
q_x.Enqueue((x + 1, cnt + 1));
q_x.Enqueue((x - 1, cnt + 1));
}
Console.WriteLine(result);
}
}
}
'코딩 공부 > C#' 카테고리의 다른 글
C# 백준 2583번 문제 영역 구하기 (0) | 2022.08.10 |
---|---|
C# 백준 7562번 문제 나이트의 이동 (0) | 2022.08.05 |
C# 백준 9012번 문제 괄호 (0) | 2022.07.28 |
C# 백준 10828번 문제 스택 (0) | 2022.07.27 |
C# 백준 7568번 문제 덩치 (0) | 2022.07.27 |