맞는데 왜 틀릴까..?

알고리즘 문제/구현 4

[Java] 구현 (쿠키의 신체 측정)

https://www.acmicpc.net/problem/20125 20125번: 쿠키의 신체 측정 쿠키런은 데브시스터즈에서 제작한 모바일 러닝 액션 게임이다. 마녀의 오븐에서 탈출한 쿠키들과 함께 모험을 떠나는 게임으로, 점프와 슬라이드 2가지 버튼만으로 손쉽게 플레이할 수 있는 www.acmicpc.net 이 전까지 문자열을 입력으로 받아올 때 항상 String 배열을 사용했다. 문자열 2차원 배열을 받아온다 하면 묻지도 따지지도 않고 String [][]을 사용했는데 이 비용이 크다는 걸 깨달았다. char [][]를 사용해서 한 줄로 들어온 String을 저장할 수 있었던 것이다! public class Main { public static void main(String[] args) throws..

[Java] 구현 (한 줄로 서기)

https://www.acmicpc.net/problem/1138 1138번: 한 줄로 서기 첫째 줄에 사람의 수 N이 주어진다. N은 10보다 작거나 같은 자연수이다. 둘째 줄에는 키가 1인 사람부터 차례대로 자기보다 키가 큰 사람이 왼쪽에 몇 명이 있었는지 주어진다. i번째 수는 0보다 www.acmicpc.net N이 10 이하로 매우 작기 때문에 아이디어로만 풀 수 있는 문제 자신의 왼쪽에 자기보다 큰 수를 저장해 놓은 배열 left_tall 순서를 저장하고 -1로 초기화해 놓은 배열 order 생성 left_tall의 순서가 오름차순으로 이미 정렬되어 있기 때문에 앞에서부터 차례대로 채워 넣기만 하면 된다. public class Main { public static int N, count; p..

구현 (마법사 상어와 토네이도)

https://www.acmicpc.net/problem/20057 20057번: 마법사 상어와 토네이도 마법사 상어가 토네이도를 배웠고, 오늘은 토네이도를 크기가 N×N인 격자로 나누어진 모래밭에서 연습하려고 한다. 위치 (r, c)는 격자의 r행 c열을 의미하고, A[r][c]는 (r, c)에 있는 모래의 양을 www.acmicpc.net 문제를 이해하는데도 시간이 꽤 걸렸던 문제. 풀이 순서: 토네이도의 위치 획득 -> 각 토네이도에 의해 이동한 모래의 양을 구해 범위 밖이면 결과 값 result에 추가 1. 좌표 설정 왼쪽 방향으로 이동할 때 모래가 흩어지는 좌표를 구할 수 있는 left 리스트 구성 -> 여기서 좌표는 모래바람이 이동한 후 인 y 위치를 기준으로 작성 -> 마지막 리스트의 원소는..

구현 (누울 자리를 찾아라)

문제 자체가 설명이 불친절하다. 문제를 해석하자면 빈자리에 누울 때 벽부터 짐이 있는 X 까지가 한 가지 경우의 수이다. 즉 ..X.. 라면 두 가지 경우의 수가 있다는 뜻이다. 변수 switch는 이 경우의 수를 카운트할 때 까다로운 부분을 해소해준다. switch가 0일 때만 빈자리 .를 카운트해준다. count가 2라면 경우의 수를 +1 해주고 switch를 1로 변경해 X를 만날 때까지 switch를 변경하지 않으면서 빈자리 .를 카운트하지 않는다. 만약 X를 만나게 된다면 switch를 0으로 변경해 다시 빈자리 .를 카운트할 수 있게 해 준다.