전체 글 292

[백준 BOJ] 16431 베시와 데이지

16431_베시와 데이지 링크 https://www.acmicpc.net/problem/16431 풀이 베시는 대각선으로도 이동할 수 있습니다. 베시가 존과 가로로 떨어져 있는 만큼을 a, 세로로 떨어져 있는 만큼을 b라고 했을 때, 존이 이동하는 시간은 max(a, b) – min(a, b) + min(a, b) = max(a, b)입니다. 가로와 세로 중 더 적은 부분은 대각선으로 이동하면서 상쇄됩니다. 데이지는 가로와 세로로만 이동하니까, 똑같이 뒀을 때 a+b입니다. 베시 = max(a,b) 데이지 = a+b 둘 중 더 작은 소를 출력하면 됩니다. 같으면 tie를 출력합니다. 코드

PS/BOJ 2018.11.28

[백준 BOJ][DP] 16507 어두운 건 무서워

16507_어두운 건 무서워 링크 https://www.acmicpc.net/problem/16507 풀이 http://jaemin8852.tistory.com/194 - 2차원 배열의 합 이 문제와 유사한 방법으로 풀 수 있습니다. (1,1)부터 (n,m)까지의 합을 구해 DP[n][m]에 저장해 놓고, 그걸 활용해 구간의 합을 구할 수 있죠. 구간의 합을 구한 다음, 가로와 세로의 길이 곱으로 나누어 출력하면 됩니다. 합이 1000*1000*10000까지 나오기 때문에 배열의 자료형은 long long으로 해야 합니다. 코드

PS/BOJ 2018.11.27

[백준 BOJ] 16504 종이접기

16504_종이접기 링크 https://www.acmicpc.net/problem/16504 풀이 종이를 계속 접어서 겹치는 부분을 더해서 마지막 남는 수를 출력하는 문제입니다. 조건을 보시면 2의 m승으로 입력이 주어집니다. 반으로 계속 접어서 하나가 남는다는 걸 성립하게 해주는 조건이죠. n제곱번 돌리면서 들어오는 정수 K를 계속 더해주면 됩니다. 최대 1024*1024*100000이니 long long을 써야합니다. 코드

PS/BOJ 2018.11.26

[백준 BOJ] 1138 한 줄로 서기

1138_한 줄로 서기 링크 https://www.acmicpc.net/problem/1138 풀이 자기가 줄을 서는 사람의 입장이 되봅시다. 작은 사람부터 세운다고 생각하면 그 이후에 들어오는 사람들은 다 현재 사람보다 큰 사람이기 때문에 현재 줄에 있는 빈 자리들은 모두 큰 사람들의 자리라고 생각하면 됩니다. i가 현재 줄 세울 사람의 키, j가 그 사람이 설 자리, cnt가 자신보다 큰 사람(즉, 빈자리) 카운트 하는 변수, tmp가 왼쪽에 자기보다 키가 큰 사람이 몇 명 있었는지를 나타냅니다. i의 키를 가진 사람이 j번째 자리를 봤을 때, 사람이 있는 경우에는 그 사람이 나보다 작기 때문에 cnt는 증가하지 않고, j만 증가합니다. 즉, 자리만 이동한다는 얘기죠. 그리고 if로 cnt와 tmp가..

PS/BOJ 2018.11.25

[백준 BOJ] 2903 중앙 이동 알고리즘

2903_중앙 이동 알고리즘 링크 https://www.acmicpc.net/problem/2903 풀이 너무 깊게 생각하지 말고 점이 일정한 간격을 두고 채워져 있기 때문에 점을 이용해서 면적을 구한다고 생각해봅시다. 사각형들은 정사각형이기 때문에 가로와 세로가 같습니다. 첫 번째 사각형의 가로의 점은 2개가 있습니다. 넓이를 구한다고 생각하고 제곱을 하면 4가 되죠. 두 번째 사각형의 가로의 점은 3개가 있습니다. 넓이를 구한다고 생각하고 제곱을 하면 9가 되죠. 세 번째 사각형의 가로의 점은 5개가 있습니다. 넓이를 구한다고 생각하고 제곱을 하면 25가 되죠. 가로의 점은 현재 점 사이사이에 점이 추가되기 때문에 현재 점 - 1만큼 추가됩니다. 즉, 현재 가로의 점이 cnt라면 다음 가로의 점은 2..

PS/BOJ 2018.11.20
반응형