코딩테스트/문제풀이 18

[코드트리] 숨은 단어 찾기 2

완전탐색과 이동탐색을 합친 문제다 어렵지는 않았는데 해당 기능을 자주 이용할 수 있을것같아 기록함. N과 M이 주어지고 또 N * M의 문자열이 주어지면 가로, 세로, 대각선 뱡향으로 도중에 방향을 틀지 않고 인접하여 나오는 ‘LEE’ 의 개수를 구하는 프로그램을 작성해보세요. 입력 형식 첫 번째 줄에 정수 N과 M이 공백을 사이에 두고 주어집니다. 1 ≤ N, M ≤ 50 출력 형식 첫 번째 줄에 모든 'LEE'의 개수를 출력합니다. 입출력 예제 예제1 입력: 4 6 TAEHGI EELVWE LEELSE HBLUEL 출력: 6 예제 설명 아래 그림과 같이 'LEE'의 개수는 총 6개 입니다. 내 코드 import java.util.*; public class Main { static int n; sta..

[코드트리] 거울에 레이저 쏘기 2

여러번 풀어봤지만 잘 안풀려서 해설을 보고 분석하려고 한다. 어려움난이도는 아직 확실히 어려운거같다. N * N 크기의 격자 안에 각 칸마다 거울이 하나씩 들어 있습니다. 각 거울은 \나 /의 형태를 띄고있고, 격자 밖 4N개의 위치 중 특정 위치에서 레이저를 쏘았을 때, 거울에 튕기는 횟수를 구하는 프로그램을 작성해보세요. 입력 형식 첫 번째 줄에 N이 주어집니다. 두 번째 줄부터 N개의 줄에 걸쳐 맵의 정보가 주어집니다. 각 줄에는 각 행에 해당하는 정보가 공백없이 주어집니다. 이는 /나 \ 문자로만 이루어져 있습니다. 그 다음 줄에는 레이저를 쏘는 위치 K가 주어집니다. K는 다음과 같이 위에서 아래 방향으로 1행 1열 칸으로 들어오는 곳을 1번으로 하여 시계 방향으로 돌며 가능한 시작 위치에 순서..

[코드트리] 빙빙 돌며 숫자 사각형 채우기

배열을 시계방향으로 돌면서 배열을 채우는 문제이다. 쉬운 문제이지만 언젠가 한번 또 볼 일이 있을 거 같아 메모한다. n * m크기의 직사각형에 숫자 1부터 순서대로 증가시키며 달팽이 모양으로 채우는 코드를 작성해보세요. 달팽이 모양이란 왼쪽 위 모서리에서 시작해서, 오른쪽, 아래쪽, 왼쪽, 위쪽 순서로 더 이상 채울 곳이 없을 때까지 회전하는 모양을 의미합니다. n : 행(row), m : 열(column)을 의미합니다. 입력 형식 n과 m이 공백을 사이에 두고 주어집니다. 출력 형식 숫자로 채워진 완성된 형태의 n * m 크기의 사각형을 출력합니다. (숫자끼리는 공백을 사이에 두고 출력합니다.) 입출력 예제 예제1 입력: 4 4 출력: 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8..

[코드트리] 작은 구슬의 이동

배열안에서 방향대로 이동하면서 벽에 부딪히면 방향을 전환하는 문제다. 행열 값이 0123이 아니라 1234로 들어와서 좀 헷갈렸는데 풀었다. 내가 지금 한발자국 더 가면 벽인지랑, 그 안에 범위안에 있는지에 대한 메소드로 두번 검증해야한다. 그리고 변수가 많아지다 보니 헷갈린다,, 지역변수랑 전역변수 이름을 최대한 다르게 해야겠다. 1개의 구슬이 n*n 격자 안에 놓여져 있고, 격자는 벽으로 둘러싸여 있습니다. 이 구슬은 방향을 갖고 있고, 해당 방향으로 1초에 한칸 씩 움직입니다. 구슬이 벽에 부딪히면 움직이는 방향이 반대로 뒤집혀 동일한 속도로 움직이는 것을 반복합니다. 이때 방향을 바꾸는 데에는 시간이 1만큼 소요됩니다. 처음 주어진 그림을 예로 4초 뒤까지의 모습을 순서대로 그려보면 다음과 같습니..

[코드트리] 악수와 전염병의 상관관계 2

난이도는 어려움. 푸는데 40분정도 걸렸고,, 초반에 잘못 생각했던 분기처리를 마지막까지 남겨놔서 여러번 틀렸다. 문제는 다음과 같다. N명의 개발자들이 있으며, T번에 걸쳐 t초에 x개발자가 y개발자와 악수를 나눈 정황이 주어집니다. 1명의 개발자가 처음에 이 전염병을 옮기기 시작한 것이 확실해 졌고, 개발자가 이 병에 감염된 후에는 정확히 K번의 악수 동안만 전염병을 옮기게 되고, 그 이후부터는 전염병에 걸려있지만 새로 옮기지는 않게 됩니다. 개발자들의 악수에 대한 정보와 처음 전염병에 걸려 있는 개발자의 번호 P가 주어졌을 때, 모든 악수를 진행한 이후에 최종적으로 누가 전염병에 걸리게 되었는지를 알아내는 프로그램을 작성해보세요. 단, 전염된 사람끼리 만나도 전염시킨 것으로 간주해야 함에 유의합니다..

[코드트리] 신기한 타일 뒤집기

풀었는데 로직 저장해두면 좋을거같아서 기록 일직선으로 무한히 나열된 회색 타일이 있습니다. 이 타일은 신기한 타일이기 때문에, 현재 타일의 색이 어떤 색인지와는 상관없이 왼쪽으로 뒤집으면 흰색으로 바뀌고, 오른쪽으로 뒤집으면 검은색으로 바뀌게 됩니다. 아무 타일에서 시작하여 n번의 명령에 걸쳐 움직입니다. 명령은 "x L", "x R" 형태로만 주어지며, "x L"의 경우 왼쪽으로 이동하며 순서대로 현재 위치 타일포함 총 x칸의 타일을 왼쪽으로 뒤집습니다. "x R"의 경우 오른쪽으로 이동하며 순서대로 현재 위치 타일포함 총 x칸의 타일을 오른쪽으로 뒤집습니다. 각 명령 이후에는 마지막으로 뒤집은 타일 위치에 서있는다고 가정합니다. 모든 명령을 실행한 뒤의 흰색, 검은색 타일 수를 각각 출력하는 프로그램..

[코드트리]왔다 갔던 구역 2

설명을 봐도 잘 모르겠어서 기록하면서 분석하려고 쓴다.. 위치 0에서 시작하여 n번의 명령에 걸쳐 움직인 뒤, 2번 이상 지나간 영역의 크기를 출력하는 프로그램을 작성해보세요. 단 명령은 “x L“, “x R” 형태로만 주어집니다. "x L" 의 경우 왼쪽으로 x만큼 이동해야 함을, "x R"의 경우 오른쪽으로 x만큼 이동해야 함을 뜻합니다. 입력 형식 첫 번째 줄에는 n이 주어집니다. 두 번째 줄 부터는 n개의 줄에 걸쳐 명령이 주어집니다. 형태는 “x L” 혹은 “x R” 입니다. 1 ≤ n ≤ 100 1 ≤ x ≤ 10 출력 형식 첫 번째 줄에 명령을 주어진 순서대로 수행했을 때, 2번 이상 지나간 영역의 크기를 출력합니다. 입출력 예제 예제1 입력: 6 2 R 6 L 1 R 8 L 1 R 2 R ..

[코드트리]정렬된 숫자 위치 알아내기

양의 정수를 원소로 갖는 길이가 N인 수열이 입력으로 주어졌을 때, 이 수열을 오름차순으로 정렬 했을 때 각각의 위치에 있던 원소가 어느 위치로 이동하는지 출력하는 코드를 작성해보세요. 입력 형식 첫째 줄에는 수열의 길이를 나타내는 양의 정수 N이 주어지고, 둘째 줄에는 N개의 양의 정수인 원소가 빈칸을 사이에 두고 주어집니다. 숫자가 중복되어 주어질 수 있습니다. 1 ≤ N ≤ 1,000 1 ≤ 수열의 원소 ≤ 1,000,000 출력 형식 이 수열을 정렬했을 때 각각의 위치에 있던 원소가 어느 위치로 이동하는지를 공백을 사이에 두고 출력하는 코드를 작성해보세요. 동일한 원소의 경우, 먼저 입력으로 주어진 원소가 더 앞으로 와야 합니다. 입출력 예제 예제1 입력 : 7 3 1 6 2 7 30 1 출력 4..