문제 크기가 N×M인 미로가 있고, 미로는 크기가 1×1인 칸으로 나누어져 있다. 미로의 각 칸에는 문자가 하나 적혀있는데, 적혀있는 문자에 따라서 다른 칸으로 이동할 수 있다. 어떤 칸(r, c)에 적힌 문자가 U인 경우에는 (r-1, c)로 이동해야 한다. R인 경우에는 (r, c+1)로 이동해야 한다. D인 경우에는 (r+1, c)로 이동해야 한다. L인 경우에는 (r, c-1)로 이동해야 한다. 미로에서 탈출 가능한 칸의 수를 계산해보자. 탈출 가능한 칸이란, 그 칸에서 이동을 시작해서 칸에 적힌대로 이동했을 때, 미로의 경계 밖으로 이동하게 되는 칸을 의미한다. 입력 첫째 줄에 미로의 크기 N, M(3 ≤ N, M ≤ 500)이 주어진다. 둘째 줄부터 N개의 줄에는 미로의 각 칸에 적힌 문자가 ..
문제 준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다. 지구를 나타내는 수를 E, 태양을 나타내는 수를 S, 달을 나타내는 수를 M이라고 했을 때, 이 세 수는 서로 다른 범위를 가진다. (1 ≤ E ≤ 15, 1 ≤ S ≤ 28, 1 ≤ M ≤ 19) 우리가 알고있는 1년은 준규가 살고있는 나라에서는 1 1 1로 나타낼 수 있다. 1년이 지날 때마다, 세 수는 모두 1씩 증가한다. 만약, 어떤 수가 범위를 넘어가는 경우에는 1이 된다. 예를 들어, 15년은 15 15 15로 나타낼 수 있다. 하지만, 1년이 지나서 16년이 되면 16 16 16이 아니라 1 16 16이 된다. ..
오늘은 2문제이기 때문에 문제는 작성하지 않을 예정.. 두 문제의 공통점은 bfs 혹은 dfs를 사용한다는 점인 동시에, 완전탐색 문제다. 그러니까 bfs와 dfs가 감미된 완탐(브루트 포스)문제라고 할수 있다., 나이트 투어는 기존의 bfs와 dfs와 다르점이 있다면, 스택이나 큐에 넣지 않는점이다. 물론 넣어도 풀 수는 있을 수 도 있다. 하지만... 아무튼 나는 그렇게 풀지 않았다. 먼저 첫번째 값을 검색하고... 그 값을 x좌표랑 y좌표로 나눈다. 그리고 저장하고 2번째 부터도 x좌표랑 y좌표로 나누는데 주의할점은 첫 번째 좌표는 더럽히면 절대 안된다. 더럽히는 순간 끝이다. 왜냐하면 다음 좌표가 무엇인지 확인해야하는데 그렇게 하지 않으면 그럴만한 껀덕지가 없기 때문이다. 여기까지 설명하고... ..
[이 문서는 타임 리프 문서를 재 구성하여 만들었습니다] 간단 사용 방법 Welcome to our grocery store! Today is: 13 february 2011 위의 내용과 비슷하게 사용되어진다. th:utext와 th:text는 추후에 알아볼예정 간단 사용 방법 변수: ${...} 세션 사용: *{...} 메시지: #{...} URL: @{...} 프레그먼트: ~{...} 아마 맨 위는 다른거들에 포함이 되지 않으면 ${...}를 이용하는 듯 싶다. 혹은 모든 변수에 이용이 가능하다 정도? 메시지 사용방법 : #{...}를 추가하면 된다. 하지만 이렇게만 만들면 재미가 없다??? home.welcome=¡Bienvenido a nuestra tienda de comestibles, {0}..
문제 알파벳 소문자로만 이루어진 단어가 주어진다. 이때, 모음(a, e, i, o, u)의 개수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 단어가 주어진다. 단어의 길이는 1보다 크거나 같고, 100보다 작거나 같으며, 알파벳 소문자로만 이루어져 있다. 출력 첫째 줄에 모음의 개수를 출력한다. 이 문제는 굉장히 쉽다. 말 그대로 모음의 갯수를 세주면 되는 문제다. 알파벳의 모음은 a,e,i,o,u이렇게 5개로 이것들을 조건문안에 넣어주면 된다. 그럼에도 이 문제를 올리는 이유는 요즘들어 새로운 문제들이 잘 풀리지 않기 때문에 올리게 되었다.
문제 싱기한 네자리 숫자란, [1000,9999]인 10진수 숫자중에서, 다음의 조건을 만족하는 숫자를 말한다. 숫자를 10진수, 12진수, 16진수로 나타낸 다음, 각각의 숫자에 대해, 각 숫자의 자리수를 더했을 때, 세 값이 모두 같아야 한다. 여러분은 싱기한 네자리 숫자를 모두 출력해야 한다. 입력 입력은 주어지지 않는다. 출력 싱기한 네자리 숫자를 오름차순으로 한줄에 하나씩 출력한다. 브론즈... 문제 오랜만에 푸는것 같다. 요즘들어 문제가 잘 안 풀려서 브론즈 문제를 풀었다. 원래 재귀로 풀려고 했는데 재귀로 풀게 되면 메소드에 계속 접근하기 때문에 내 의도와 다르게 답이 나올거라 생각했다. 그게 아니라면 메소드를 3개 써야 되는건데... 그럴빠야 차라리 1개 쓰고, 재귀로 풀지 않는편이 낫다고..
프록시 패턴을 알기전에 프록시라는 단어를 알아야 할듯 싶다. 프록시는 대리라는 뜻을 가지고 있다. 그러면 뭔가 대신해주는 패턴이라는건데 무엇을 대신해준다는 걸까? 예를 들어, 복잡한 일이 있다고 가정하자. 또, 그 일은 혼자서 하기 힘들다고 가정하자. 그러면 그 일을 누군가가 대신해준다면... 일은 더 수월하게 끝낼 수 있을 지도 모른다. IT세상에서는 혼자서 처리하기 힘들다기 보다는 프록시라는 객체가 있기 때문에 더 수월하다는 느낌을 받는다. 즉, 프록시에 도움을 받는 그런 기분을 받는다. 프록시 패턴에는 총 3가지 종류의 패턴이 존재한다. 가상 프록시 패턴, 원격 프록시 패턴, 보호 프록시 패턴 여기서 우리가 알아볼 패턴은 가상 프록시 패턴이다. (물론, 원격이나 보호의 내용이 전혀 다르기 때문에 이..
문제 N×M 크기의 보드와 4개의 버튼으로 이루어진 게임이 있다. 보드는 1×1크기의 정사각형 칸으로 나누어져 있고, 각각의 칸은 비어있거나, 벽이다. 두 개의 빈 칸에는 동전이 하나씩 놓여져 있고, 두 동전의 위치는 다르다. 버튼은 "왼쪽", "오른쪽", "위", "아래"와 같이 4가지가 있다. 버튼을 누르면 두 동전이 버튼에 쓰여 있는 방향으로 동시에 이동하게 된다. 동전이 이동하려는 칸이 벽이면, 동전은 이동하지 않는다. 동전이 이동하려는 방향에 칸이 없으면 동전은 보드 바깥으로 떨어진다. 그 외의 경우에는 이동하려는 방향으로 한 칸 이동한다.이동하려는 칸에 동전이 있는 경우에도 한 칸 이동한다. 두 동전 중 하나만 보드에서 떨어뜨리기 위해 버튼을 최소 몇 번 눌러야하는지 구하는 프로그램을 작성하시..
문제 로마 숫자에서는 수를 나타내기 위해서 I, V, X, L을 사용한다. 각 문자는 1, 5, 10, 50을 의미하고, 이 문제에서 다른 문자는 사용하지 않는다. 하나 또는 그 이상의 문자를 이용해서 수를 나타낼 수 있다. 문자열이 나타내는 값은, 각 문자가 의미하는 수를 모두 합한 값이다. 예를 들어, XXXV는 35, IXI는 12를 의미한다. 실제 로마 숫자에서는 문자의 순서가 중요하지만, 이 문제에서는 순서는 신경쓰지 않는다. 예를 들어, 실제 로마 숫자에서 IX는 9를 의미하지만, 이 문제에서는 11을 의미한다. 로마 숫자를 N개 사용해서 만들 수 있는 서로 다른 수의 개수를 구해보자. 입력 첫째 줄에 사용할 수 있는 문자의 개수 N (1 ≤ N ≤ 20)이 주어진다. 출력 첫째 줄에 로마 숫..
문제 영선이는 매우 기쁘기 때문에, 효빈이에게 스마일 이모티콘을 S개 보내려고 한다. 영선이는 이미 화면에 이모티콘 1개를 입력했다. 이제, 다음과 같은 3가지 연산만 사용해서 이모티콘을 S개 만들어 보려고 한다. 화면에 있는 이모티콘을 모두 복사해서 클립보드에 저장한다. 클립보드에 있는 모든 이모티콘을 화면에 붙여넣기 한다. 화면에 있는 이모티콘 중 하나를 삭제한다. 모든 연산은 1초가 걸린다. 또, 클립보드에 이모티콘을 복사하면 이전에 클립보드에 있던 내용은 덮어쓰기가 된다. 클립보드가 비어있는 상태에는 붙여넣기를 할 수 없으며, 일부만 클립보드에 복사할 수는 없다. 또한, 클립보드에 있는 이모티콘 중 일부를 삭제할 수 없다. 화면에 이모티콘을 붙여넣기 하면, 클립보드에 있는 이모티콘의 개수가 화면에..
14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크� www.acmicpc.net 이 문제는 브루트 포스 + bfs or dfs로 푸는 문제다. #include using namespace std; #define X first #define Y second int maps[30][30]; int dist[30][30]; bool visit[30][30]; int N,M; int dx[4] = {1,-1,0,0}; int dy[4] = {0,0,-1,1}; int bfs() { queue q; for(int i = 0; i
문제 뱀과 사다리 게임을 즐겨 하는 큐브러버는 어느 날 궁금한 점이 생겼다. 주사위를 조작해 내가 원하는 수가 나오게 만들 수 있다면, 최소 몇 번만에 도착점에 도착할 수 있을까? 게임은 정육면체 주사위를 사용하며, 주사위의 각 면에는 1부터 6까지 수가 하나씩 적혀있다. 게임은 크기가 10×10이고, 총 100개의 칸으로 나누어져 있는 보드판에서 진행된다. 보드판에는 1부터 100까지 수가 하나씩 순서대로 적혀져 있다. 플레이어는 주사위를 굴려 나온 수만큼 이동해야 한다. 예를 들어, 플레이어가 i번 칸에 있고, 주사위를 굴려 나온 수가 4라면, i+4번 칸으로 이동해야 한다. 만약 주사위를 굴린 결과가 100번 칸을 넘어간다면 이동할 수 없다. 도착한 칸이 사다리면, 사다리를 타고 위로 올라간다. 뱀..