λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

전체 κΈ€

(9)
[BOJ] λ°±μ€€ 2904 μˆ˜ν•™μ€ λ„ˆλ¬΄ μ‰¬μ›Œ (C++) 문제 링크 www.acmicpc.net/problem/2904 2904번: μˆ˜ν•™μ€ λ„ˆλ¬΄ μ‰¬μ›Œ 첫째 쀄에 N이 μ£Όμ–΄μ§„λ‹€. (1 ≤ N ≤ 100) λ‘˜μ§Έ μ€„μ—λŠ” 쒅이에 μ ν˜€μžˆλŠ” 수 Nκ°œκ°€ μ£Όμ–΄μ§„λ‹€. μˆ˜λŠ” λͺ¨λ‘ 1,000,000보닀 μž‘κ±°λ‚˜ 같은 μ–‘μ˜ μ •μˆ˜μ΄λ‹€. www.acmicpc.net μΉ΄ν…Œκ³ λ¦¬ μ†ŒμΈμˆ˜ λΆ„ν•΄(μˆ˜ν•™) 문제 풀이 1. λ¨Όμ €, μ†Œμˆ˜λ₯Ό λͺ¨λ‘ ꡬ해 배열에 μ €μž₯ν•œλ‹€. (μ—λΌν† μŠ€ν…Œλ„€μŠ€μ˜ 체) 2. cal(num)을 톡해 λͺ¨λ“  μž…λ ₯ 받은 num (총 N개)에 λŒ€ν•œ μ†ŒμΈμˆ˜ λΆ„ν•΄λ₯Ό μ§„ν–‰ν•œλ‹€. πŸ‘‰ 이 κ²°κ³ΌλŠ” map dict[]에 각각 μ €μž₯ν•œλ‹€. (인수, μ§€μˆ˜) πŸ‘‰ 단, μ΄λ•Œ μ†ŒμΈμˆ˜ λΆ„ν•΄ν•œ λͺ¨λ“  값듀을 λˆ„μ ν•΄μ„œ map mp에 μ €μž₯ν•œλ‹€. (인수, μ§€μˆ˜) 3. 이제, mp에 μ €μž₯된 μΈμˆ˜λ“€μ˜ μ§€μˆ˜ 값듀을 N으둜 λ‚˜λˆ„μ–΄..
[BOJ] λ°±μ€€ 1915 κ°€μž₯ 큰 μ •μ‚¬κ°ν˜• (C++) 문제 링크 www.acmicpc.net/problem/1915 1915번: κ°€μž₯ 큰 μ •μ‚¬κ°ν˜• 첫째 쀄에 n, m(1 ≤ n, m ≤ 1,000)이 μ£Όμ–΄μ§„λ‹€. λ‹€μŒ n개의 μ€„μ—λŠ” m개의 숫자둜 배열이 μ£Όμ–΄μ§„λ‹€. www.acmicpc.net μΉ΄ν…Œκ³ λ¦¬ DP 문제 풀이 * DP[X][Y] = N : (X,Y)κ°€ μ–΄λ–€ μ •μ‚¬κ°ν˜•μ˜ 우츑 μ•„λž˜ 꼭지점일 λ•Œ, 될 수 μžˆλŠ” μ •μ‚¬κ°ν˜•λ“€ 쀑 μ΅œλŒ€ λ³€μ˜ κΈΈμ΄λŠ” N이닀. 1. λ§Œμ•½ ν–‰μ΄λ‚˜ μ—΄μ˜ idxκ°€ 0인 경우 (X == 0 || Y == 0) πŸ‘‰ DP[X][Y] = board[X][Y] 2. μΈμ ‘ν•œ μœ„,μ’Œμƒ,μ™Όμͺ½μ˜ dpκ°’ 쀑 0이 μžˆλŠ” 경우 πŸ‘‰ DP[X][Y] = board[X][Y] 3. μΈμ ‘ν•œ μœ„,μ’Œμƒ,μ™Όμͺ½μ˜ dp값이 λͺ¨λ‘ 0이 μ•„λ‹Œ 경우 πŸ‘‰ DP[X][Y] = min(..
[BOJ] λ°±μ€€ 2616 μ†Œν˜•κΈ°κ΄€μ°¨ (C++) 문제 링크 www.acmicpc.net/problem/2616 2616번: μ†Œν˜•κΈ°κ΄€μ°¨ 첫째 쀄에 κΈ°κ΄€μ°¨κ°€ 끌고 κ°€λ˜ 객차의 μˆ˜κ°€ μž…λ ₯λœλ‹€. κ·Έ μˆ˜λŠ” 50,000 μ΄ν•˜μ΄λ‹€. λ‘˜μ§Έ μ€„μ—λŠ” κΈ°κ΄€μ°¨κ°€ 끌고 κ°€λ˜ 객차에 타고 μžˆλŠ” μ†λ‹˜μ˜ μˆ˜κ°€ 1번 객차뢀터 μ°¨λ‘€λ‘œ μž…λ ₯λœλ‹€. ν•œ 객차에 타고 있 www.acmicpc.net μΉ΄ν…Œκ³ λ¦¬ DP 문제 풀이 1. DP[X][N] = X개의 κΈ°κ΄€μ°¨λ₯Ό μ΄μš©ν•΄ 1~N번째의 κ°μ°¨κΉŒμ§€ λŒμ—ˆμ„ λ•Œμ˜ μ΅œλŒ“κ°’ ex) DP[2][6] : 2개의 κΈ°κ΄€μ°¨λ₯Ό μ΄μš©ν•΄ 1~6λ²ˆκΉŒμ§€μ˜ 객차λ₯Ό λŒμ—ˆμ„ λ•Œ μ΅œλŒ“κ°’ 2. sum[N] = κΈ°κ΄€μ°¨ 1κ°œκ°€ Nλ²ˆλΆ€ν„° 객차λ₯Ό μ—°κ²°ν•΄ μš΄μ†‘ν•  λ•Œ μš΄μ†‘ν•  수 μžˆλŠ” μ΅œλŒ€ μ†λ‹˜μ˜ 수 3. 점화식 3.1 DP[1][N] = max(DP[1][N-1], sum[N]) 3.2 D..
[BOJ] λ°±μ€€ 1461 λ„μ„œκ΄€ (C++) 문제 링크 www.acmicpc.net/problem/1461 1461번: λ„μ„œκ΄€ 첫째 쀄에 μ±…μ˜ 개수 Nκ³Ό, 세쀀이가 ν•œ λ²ˆμ— λ“€ 수 μžˆλŠ” μ±…μ˜ 개수 M이 μ£Όμ–΄μ§„λ‹€. λ‘˜μ§Έ μ€„μ—λŠ” μ±…μ˜ μœ„μΉ˜κ°€ μ£Όμ–΄μ§„λ‹€. N은 10,000보닀 μž‘κ±°λ‚˜ 같은 μžμ—°μˆ˜μ΄κ³ , M은 10,000보닀 μž‘κ±°λ‚˜ κ°™λ‹€. μ±…μ˜ μœ„μΉ˜ www.acmicpc.net μΉ΄ν…Œκ³ λ¦¬ 그리디 문제 풀이 1. μ–‘μˆ˜, 음수 μœ„μΉ˜μ˜ λ„μ„œλ“€μ„ λΆ„λ₯˜ν•΄μ„œ 벑터에 μ €μž₯ν•œλ‹€. 2. 각각의 μ–‘μˆ˜, 음수 λ„μ„œλ“€μ„ 거리가 λ¨Ό μˆœμ„œλ‘œ μ •λ ¬ν•œλ‹€. πŸ‘‰ +, - μœ„μΉ˜μ˜ λ„μ„œλ“€μ„ μ„žμ–΄μ„œ κ°€μ Έλ‹€ λ†“μœΌλ©΄, 0을 μ—¬λŸ¬λ²ˆ μ§€λ‚˜κ²Œ λ˜λ―€λ‘œ μ΅œμ†Ÿκ°’μ΄ λ‚˜μ˜¬ 수 μ—†λ‹€. 3. μ΅œλŒ€λ‘œ λ“€ 수 μžˆλŠ” μ±…μ˜ 개수 만큼 각각 λ¬ΆμŒμ„ μ§“λŠ”λ‹€. 3.1 각 λ²‘ν„°μ˜ μ•žμ—μ„œλΆ€ν„° λ¬Άκ³ , 각 묢음의 첫번째 μ›μ†Œλ₯Ό κΈ°μ€€μœΌλ‘œ ..
[BOJ] λ°±μ€€ 2638 치즈 (C++) 문제 링크 www.acmicpc.net/problem/2638 2638번: 치즈 첫째 μ€„μ—λŠ” λͺ¨λˆˆμ’…μ΄μ˜ 크기λ₯Ό λ‚˜νƒ€λ‚΄λŠ” 두 개의 μ •μˆ˜ N, M (5≤N, M≤100)이 μ£Όμ–΄μ§„λ‹€. κ·Έ λ‹€μŒ N개의 μ€„μ—λŠ” λͺ¨λˆˆμ’…이 μœ„μ˜ κ²©μžμ— μΉ˜μ¦ˆκ°€ μžˆλŠ” 뢀뢄은 1둜 ν‘œμ‹œλ˜κ³ , μΉ˜μ¦ˆκ°€ μ—†λŠ” 뢀뢄은 0으둜 ν‘œ www.acmicpc.net μΉ΄ν…Œκ³ λ¦¬ BFS, 아이디어 문제 풀이 1. 외뢀곡기λ₯Ό κΈ°μ€€μœΌλ‘œ BFS 탐색을 ν•œλ‹€κ³  μƒκ°ν•œλ‹€. 2. ν˜„μž¬ 남은 치즈의 수λ₯Ό remain으둜 μ„€μ •ν•΄ 이 개수λ₯Ό 톡해 μΉ˜μ¦ˆκ°€ λ‹€ λ…Ήμ•˜λŠ”μ§€ νŒλ‹¨ν•œλ‹€. 3. λ‹€μŒκ³Ό 같이 BFS 탐색을 ν•œλ‹€. 3-0. (0, 0)κ³Ό μ—°κ²°λœ μ˜μ—­μ„ μ°ΎλŠ”λ‹€λŠ” λŠλ‚ŒμœΌλ‘œ BFS 탐색을 ν•œλ‹€. 3-1. λ‹€μŒ 탐색할 μœ„μΉ˜(nx,ny)κ°€ 치즈이면 ν•΄λ‹Ή μœ„μΉ˜μ˜ isMelt[nx][n..
[BOJ] λ°±μ€€ 14923 미둜 νƒˆμΆœ (C++) 문제 링크 www.acmicpc.net/problem/14923 14923번: 미둜 νƒˆμΆœ ν™μ΅μ΄λŠ” μ‚¬μ•…ν•œ λ§ˆλ²•μ‚¬μ˜ 꾐에 속아 N x M 미둜 (Hx, Hy) μœ„μΉ˜μ— λ–¨μ–΄μ‘Œλ‹€. λ‹€ν–‰νžˆλ„ ν™μ΅μ΄λŠ” λ§ˆλ²•μ‚¬κ°€ λ§Œλ“  미둜의 νƒˆμΆœ μœ„μΉ˜(Ex, Ey)λ₯Ό μ•Œκ³  μžˆλ‹€. ν•˜μ§€λ§Œ λ―Έλ‘œμ—λŠ” 곳곳에 λ§ˆλ²•μ‚¬κ°€ μ„€μΉ˜ν•œ 벽이 www.acmicpc.net μΉ΄ν…Œκ³ λ¦¬ BFS, 아이디어 문제 풀이 1. BFS 탐색을 톡해 좜ꡬλ₯Ό μ°ΎλŠ”λ‹€. 2. mazeVisit[x][y][A] : (x, y) μœ„μΉ˜μ— A번 λ§ˆλ²•μ„ μ“Έ 수 μžˆλŠ” μƒνƒœλ‘œ μ™”μ—ˆλŠ”μ§€ 확인 (0: 온 적 μ—†μŒ, 1: 온 적 있음) ex) mazeVisit[2][3][1] = 1 : (2,3) μœ„μΉ˜μ— 1번 λ§ˆλ²•μ„ μ“Έ 수 μžˆλŠ” μƒνƒœμΌ λ•Œ λ„μ°©ν•œμ μ΄ 있음 => λ°©λ¬Έν–ˆλ‹€λ©΄, λ°©λ¬Έν•œ 상황에 맞..
[BOJ] λ°±μ€€ 1600 말이 λ˜κ³ ν”ˆ μ›μˆ­μ΄ (C++) 문제 링크 www.acmicpc.net/problem/1600 1600번: 말이 λ˜κ³ ν”ˆ μ›μˆ­μ΄ 첫째 쀄에 μ •μˆ˜ Kκ°€ μ£Όμ–΄μ§„λ‹€. λ‘˜μ§Έ 쀄에 격자판의 κ°€λ‘œκΈΈμ΄ W, μ„Έλ‘œκΈΈμ΄ Hκ°€ μ£Όμ–΄μ§„λ‹€. κ·Έ λ‹€μŒ H쀄에 걸쳐 W개의 μˆ«μžκ°€ μ£Όμ–΄μ§€λŠ”λ°, 0은 아무것도 μ—†λŠ” 평지, 1은 μž₯애물을 λœ»ν•œλ‹€. μž₯애물이 있 www.acmicpc.net μΉ΄ν…Œκ³ λ¦¬ BFS, 아이디어 문제 풀이 1. BFS 탐색을 톡해 μ›μˆ­μ΄κ°€ 도착점에 λ„λ‹¬ν•˜λŠ”μ§€ νŒλ‹¨ν•œλ‹€. 2. 이λ₯Ό μœ„ν•΄ λ°©λ¬Έ 배열을 μ„€μ •ν•œλ‹€. 2.1 boardVisit[x][y][move] : (x,y) 지점에 move만큼 μ΄λ™νšŸμˆ˜κ°€ 남은 μ±„λ‘œ 온 적이 μžˆλ‹€. 3. 12κ°€μ§€ 경우의 수λ₯Ό μ΄μš©ν•΄ μ›μˆ­μ΄μ˜ λ‹€μŒ μœ„μΉ˜λ₯Ό 계산해 큐에 λ„£λŠ”λ‹€. 3.1 (0~3 : μƒν•˜μ’Œμš°, 4~11 말처럼 이..
[BOJ] λ°±μ€€ 17281 ⚾ (C++) 문제 링크 www.acmicpc.net/problem/17281 17281번: ⚾ βšΎλŠ” 9λͺ…μœΌλ‘œ 이루어진 두 νŒ€μ΄ 곡격과 μˆ˜λΉ„λ₯Ό λ²ˆκ°ˆμ•„ ν•˜λŠ” κ²Œμž„μ΄λ‹€. ν•˜λ‚˜μ˜ 이닝은 곡격과 μˆ˜λΉ„λ‘œ 이루어져 있고, 총 N이닝 λ™μ•ˆ κ²Œμž„μ„ μ§„ν–‰ν•΄μ•Ό ν•œλ‹€. ν•œ 이닝에 3아웃이 λ°œμƒν•˜λ©΄ 이닝이 μ’… www.acmicpc.net μΉ΄ν…Œκ³ λ¦¬ λ°±νŠΈλž˜ν‚Ή, 브루트 포슀 문제 풀이 1. λ°±νŠΈλž˜ν‚Ήμ„ μ΄μš©ν•΄ μ•Όκ΅¬μ„ μˆ˜λ“€μ˜ μˆœμ„œλ₯Ό μ •ν•œλ‹€. (λ°±νŠΈλž˜ν‚Ή) 2. 각 μˆœμ„œμ— 맞게 κ²Œμž„μ„ μ‹œμž‘ν•΄ λ³Έλ‹€. (브루트 포슀) 3. κ²Œμž„μ˜ 쑰건에 맞게 야ꡬλ₯Ό μ‹œμž‘ν•˜κ³ , ν•΄λ‹Ή μˆœμ„œμ— λ”°λ₯Έ 점수λ₯Ό 비ꡐ해 κ·Έ 쀑 μ΅œλŒ“κ°’μ„ 좜λ ₯ν•œλ‹€. * κ²Œμž„ 쑰건 더보기 1. μ΄λ‹λ³„λ‘œ κ²Œμž„μ„ μ‹œμž‘ν•œλ‹€. (이닝 μ‹œμž‘ μ‹œ λ³€μˆ˜λ“€ μ΄ˆκΈ°ν™”) 2. λ² μ΄μŠ€μ— λ‚˜κ°€μžˆλŠ” νƒ€μžλ“€μ˜ μœ„μΉ˜λ₯Ό remainBa..