λ°˜μ‘ν˜•

πŸ•οΈ ICPC Sinchon/Linear Data Structure 15

[BOJ][C++] λ°±μ€€ 4358번: μƒνƒœν•™

https://www.acmicpc.net/problem/4358 λ¬Έμ œμƒνƒœν•™μ—μ„œ λ‚˜λ¬΄μ˜ 뢄포도λ₯Ό μΈ‘μ •ν•˜λŠ” 것은 μ€‘μš”ν•˜λ‹€. κ·ΈλŸ¬λ―€λ‘œ 당신은 λ―Έκ΅­ μ „μ—­μ˜ λ‚˜λ¬΄λ“€μ΄ μ£Όμ–΄μ‘Œμ„ λ•Œ, 각 쒅이 μ „μ²΄μ—μ„œ λͺ‡ %λ₯Ό μ°¨μ§€ν•˜λŠ”μ§€ κ΅¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ λ§Œλ“€μ–΄μ•Ό ν•œλ‹€.μž…λ ₯ν”„λ‘œκ·Έλž¨μ€ μ—¬λŸ¬ μ€„λ‘œ 이루어져 있으며, ν•œ 쀄에 ν•˜λ‚˜μ˜ λ‚˜λ¬΄ μ’… 이름이 주어진닀. μ–΄λ–€ μ’… 이름도 30κΈ€μžλ₯Ό λ„˜μ§€ μ•ŠμœΌλ©°, μž…λ ₯μ—λŠ” μ΅œλŒ€ 10,000개의 쒅이 주어지고 μ΅œλŒ€ 1,000,000그루의 λ‚˜λ¬΄κ°€ 주어진닀.좜λ ₯주어진 각 μ’…μ˜ 이름을 μ‚¬μ „μˆœμœΌλ‘œ 좜λ ₯ν•˜κ³ , κ·Έ 쒅이 μ°¨μ§€ν•˜λŠ” λΉ„μœ¨μ„ λ°±λΆ„μœ¨λ‘œ μ†Œμˆ˜μ  4μ§Έμžλ¦¬κΉŒμ§€ λ°˜μ˜¬λ¦Όν•΄ ν•¨κ»˜ 좜λ ₯ν•œλ‹€. ν’€μ΄λ¬Έμ œ 풀이보닀 μž…μΆœλ ₯이 더 κΉŒλ‹€λ‘œμš΄ 문제 C++μ—μ„œ 좜λ ₯ μ†Œμˆ«μ μ„ κ³ μ •ν•˜λŠ” 법cout  C++μ—μ„œ μ†Œμˆ˜μ  μ•„λž˜ n개 숫자λ₯Ό..

[BOJ][C++] λ°±μ€€ 25192번: 인사성 λ°”λ₯Έ 곰곰이

https://www.acmicpc.net/problem/25192 λ¬Έμ œ μ•Œκ³ λ¦¬μ¦˜ μž…λ¬Έλ°© μ˜€ν”ˆ μ±„νŒ…λ°©μ—μ„œλŠ” μƒˆλ‘œμš΄ 뢄듀이 μž…μž₯을 ν•  λ•Œλ§ˆλ‹€ κ³°κ³°ν‹°μ½˜μ„ μ‚¬μš©ν•΄ 인사λ₯Ό ν•œλ‹€. 이λ₯Ό λ³Έ λ¬Έμžμ—΄ ν‚¬λŸ¬ μž„μŠ€λŠ” μ±„νŒ…λ°©μ˜ 기둝을 μˆ˜μ§‘ν•΄ κ·Έ 쀑 κ³°κ³°ν‹°μ½˜μ΄ μ‚¬μš©λœ 횟수λ₯Ό ꡬ해 보기둜 ν–ˆλ‹€.ENTERλŠ” μƒˆλ‘œμš΄ μ‚¬λžŒμ΄ μ±„νŒ…λ°©μ— μž…μž₯ν–ˆμŒμ„ λ‚˜νƒ€λ‚Έλ‹€. κ·Έ μ™ΈλŠ” μ±„νŒ…μ„ μž…λ ₯ν•œ μœ μ €μ˜ λ‹‰λ„€μž„μ„ λ‚˜νƒ€λ‚Έλ‹€. λ‹‰λ„€μž„μ€ 숫자 λ˜λŠ” 영문 λŒ€μ†Œλ¬Έμžλ‘œ κ΅¬μ„±λ˜μ–΄ μžˆλ‹€.μƒˆλ‘œμš΄ μ‚¬λžŒμ΄ μž…μž₯ν•œ 이후 처음 μ±„νŒ…μ„ μž…λ ₯ν•˜λŠ” μ‚¬λžŒμ€ λ°˜λ“œμ‹œ κ³°κ³°ν‹°μ½˜μœΌλ‘œ 인사λ₯Ό ν•œλ‹€. κ·Έ μ™Έμ˜ 기둝은 κ³°κ³°ν‹°μ½˜μ„ 쓰지 μ•Šμ€ ν‰λ²”ν•œ μ±„νŒ… 기둝이닀.μ±„νŒ… 기둝 쀑 κ³°κ³°ν‹°μ½˜μ΄ μ‚¬μš©λœ 횟수λ₯Ό κ΅¬ν•΄λ³΄μž!μž…λ ₯첫 번째 μ€„μ—λŠ” μ±„νŒ…λ°©μ˜ 기둝 수λ₯Ό λ‚˜νƒ€λ‚΄λŠ” μ •μˆ˜ N$N$ μ΄ 주어진닀. (1≤N..

[C++][BOJ] λ°±μ€€ 1822번: 차집합

https://www.acmicpc.net/problem/1822 λ¬Έμ œλͺ‡ 개의 μžμ—°μˆ˜λ‘œ 이루어진 두 집합 A와 Bκ°€ μžˆλ‹€. 집합 Aμ—λŠ” μ†ν•˜λ©΄μ„œ 집합 Bμ—λŠ” μ†ν•˜μ§€ μ•ŠλŠ” λͺ¨λ“  μ›μ†Œλ₯Ό κ΅¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€.μž…λ ₯첫째 μ€„μ—λŠ” 집합 A의 μ›μ†Œμ˜ 개수 n(A)와 집합 B의 μ›μ†Œμ˜ 개수 n(B)κ°€ 빈 칸을 사이에 두고 주어진닀. (1 ≤ n(A), n(B) ≤ 500,000)이 주어진닀. λ‘˜μ§Έ μ€„μ—λŠ” 집합 A의 μ›μ†Œκ°€, μ…‹μ§Έ μ€„μ—λŠ” 집합 B의 μ›μ†Œκ°€ 빈 칸을 사이에 두고 주어진닀. ν•˜λ‚˜μ˜ μ§‘ν•©μ˜ μ›μ†ŒλŠ” 2,147,483,647 μ΄ν•˜μ˜ μžμ—°μˆ˜μ΄λ©°, ν•˜λ‚˜μ˜ 집합에 μ†ν•˜λŠ” λͺ¨λ“  μ›μ†Œμ˜ 값은 λ‹€λ₯΄λ‹€.좜λ ₯첫째 쀄에 집합 Aμ—λŠ” μ†ν•˜λ©΄μ„œ 집합 Bμ—λŠ” μ†ν•˜μ§€ μ•ŠλŠ” μ›μ†Œμ˜ 개수λ₯Ό 좜λ ₯ν•œλ‹€. λ‹€μŒ μ€„μ—λŠ” ꡬ체적인 μ›μ†Œλ₯Ό 빈..

[BOJ][C++] λ°±μ€€ 1966번: ν”„λ¦°ν„° 큐

https://www.acmicpc.net/problem/1966 1966번: ν”„λ¦°ν„° 큐 μ—¬λŸ¬λΆ„λ„ μ•Œλ‹€μ‹œν”Ό μ—¬λŸ¬λΆ„μ˜ ν”„λ¦°ν„° κΈ°κΈ°λŠ” μ—¬λŸ¬λΆ„μ΄ μΈμ‡„ν•˜κ³ μž ν•˜λŠ” λ¬Έμ„œλ₯Ό 인쇄 λͺ…령을 받은 ‘μˆœμ„œλŒ€λ‘œ’, 즉 λ¨Όμ € μš”μ²­λœ 것을 λ¨Όμ € μΈμ‡„ν•œλ‹€. μ—¬λŸ¬ 개의 λ¬Έμ„œκ°€ μŒ“μΈλ‹€λ©΄ Queue μžλ£Œκ΅¬μ‘°μ— www.acmicpc.net 문제 μ—¬λŸ¬λΆ„λ„ μ•Œλ‹€μ‹œν”Ό μ—¬λŸ¬λΆ„μ˜ ν”„λ¦°ν„° κΈ°κΈ°λŠ” μ—¬λŸ¬λΆ„μ΄ μΈμ‡„ν•˜κ³ μž ν•˜λŠ” λ¬Έμ„œλ₯Ό 인쇄 λͺ…령을 받은 ‘μˆœμ„œλŒ€λ‘œ’, 즉 λ¨Όμ € μš”μ²­λœ 것을 λ¨Όμ € μΈμ‡„ν•œλ‹€. μ—¬λŸ¬ 개의 λ¬Έμ„œκ°€ μŒ“μΈλ‹€λ©΄ Queue μžλ£Œκ΅¬μ‘°μ— μŒ“μ—¬μ„œ FIFO - First In First Out - 에 따라 인쇄가 되게 λœλ‹€. ν•˜μ§€λ§Œ μƒκ·Όμ΄λŠ” μƒˆλ‘œμš΄ ν”„λ¦°ν„°κΈ° λ‚΄λΆ€ μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό κ°œλ°œν•˜μ˜€λŠ”λ°, 이 ν”„λ¦°ν„°κΈ°λŠ” λ‹€μŒκ³Ό 같은 쑰건에 따라 인쇄λ₯Ό ν•˜κ²Œ λœλ‹€..

[BOJ][C++] λ°±μ€€ 17299번: μ˜€λ“±ν°μˆ˜

https://www.acmicpc.net/problem/17299 17299번: μ˜€λ“±ν°μˆ˜ 첫째 쀄에 μˆ˜μ—΄ A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진닀. λ‘˜μ§Έμ— μˆ˜μ—΄ A의 μ›μ†Œ A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진닀. www.acmicpc.net 풀이 각 μˆ«μžλ“€μ˜ κ°―μˆ˜λŠ” μž…λ ₯을 λ°›λŠ” 쀑에 cnt 벑터λ₯Ό μ—…λ°μ΄νŠΈν•˜λ©° κ΅¬ν–ˆλ‹€ μž…λ ₯을 λ‹€ 받은 ν›„μ—λŠ” μž…λ ₯에 ν•΄λ‹Ήν•˜λŠ” 각 μˆ«μžμ™€ ν•΄λ‹Ή 숫자의 개수λ₯Ό pair둜 λ§Œλ“€μ–΄μ„œ f 벑터에 μ €μž₯ν•΄μ€€λ‹€ 이제 f벑터λ₯Ό 거꾸둜 λŒλ©΄μ„œ μŠ€νƒμ„ μ΄μš©ν•΄ μ˜€λ“±ν°μˆ˜λ₯Ό ꡬ해쀀닀 μŠ€νƒμ•ˆμ— μžˆλŠ” μˆ«μžλ“€μ€ 본인보닀 였λ₯Έμͺ½μ— μžˆλŠ” μˆ«μžμ΄λ―€λ‘œ ν•΄λ‹Ή μŠ€νƒ λ‚΄μ—μ„œ 본인의 λΉˆλ„λ³΄λ‹€ 더 큰 λΉˆλ„λ₯Ό 가진 μˆ˜κ°€ λ‚˜μ˜¬ λ•ŒκΉŒμ§€ popν•œλ‹€. κ·Έλ ‡κ²Œ κ΅¬ν•œ μ˜€λ“±ν°μˆ˜..

[BOJ][C++] λ°±μ€€ 1918번: ν›„μœ„ ν‘œκΈ°μ‹

https://www.acmicpc.net/problem/1918 1918번: ν›„μœ„ ν‘œκΈ°μ‹ 첫째 쀄에 μ€‘μœ„ ν‘œκΈ°μ‹μ΄ 주어진닀. 단 이 μˆ˜μ‹μ˜ ν”Όμ—°μ‚°μžλŠ” μ•ŒνŒŒλ²³ λŒ€λ¬Έμžλ‘œ 이루어지며 μˆ˜μ‹μ—μ„œ ν•œ λ²ˆμ”©λ§Œ λ“±μž₯ν•œλ‹€. 그리고 -A+B와 같이 -κ°€ κ°€μž₯ μ•žμ— μ˜€κ±°λ‚˜ AB와 같이 *κ°€ μƒλž΅λ˜λŠ” λ“±μ˜ www.acmicpc.net 풀이 ν”Όμ—°μ‚°μžλŠ” λ°”λ‘œ λ‹΅ λ¬Έμžμ—΄μ— λ„£λŠ”λ‹€. μ—°μ‚°μžλŠ” μŠ€νƒμ— λ„£μ–΄μ„œ κ΄€λ¦¬ν•œλ‹€. λ‹«νžŒ κ΄„ν˜Έκ°€ λ‚˜μ˜€λ©΄ μŠ€νƒ 내에 μ—΄λ¦° κ΄„ν˜Έκ°€ λ‚˜μ˜¬ λ•ŒκΉŒμ§€ μŠ€νƒμ— μžˆλŠ” μ—°μ‚¬μžλ“€μ„ λ½‘μ•„μ„œ λ‹΅ λ¬Έμžμ—΄μ— λ„£λŠ”λ‹€. μ—°μ‚°μžλ₯Ό μŠ€νƒμ— 넣을 λ•Œ μŠ€νƒ λ‚΄ μ—°μ‚°μžκ°€ ν˜„μž¬ μ—°μ‚°μžλ³΄λ‹€ μš°μ„ μˆœμœ„κ°€ λ†’κ±°λ‚˜ κ°™λ‹€λ©΄ μŠ€νƒμ— μžˆλŠ” μ—°μ‚°μžλ₯Ό λ‹€ λ½‘μ•„μ„œ λ‹΅ λ¬Έμžμ—΄μ— λ„£λŠ”λ‹€ #include #include using namespace std; int..

[BOJ][C++] λ°±μ€€ 14425번: λ¬Έμžμ—΄ 집합

https://www.acmicpc.net/problem/14425 14425번: λ¬Έμžμ—΄ 집합 첫째 쀄에 λ¬Έμžμ—΄μ˜ 개수 Nκ³Ό M (1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)이 주어진닀. λ‹€μŒ N개의 μ€„μ—λŠ” 집합 S에 ν¬ν•¨λ˜μ–΄ μžˆλŠ” λ¬Έμžμ—΄λ“€μ΄ 주어진닀. λ‹€μŒ M개의 μ€„μ—λŠ” 검사해야 ν•˜λŠ” λ¬Έμžμ—΄λ“€μ΄ μ£Όμ–΄ www.acmicpc.net 풀이 자료ꡬ쑰 을 μ΄μš©ν•˜μ—¬ 풀이 #include #include using namespace std; int main() { set s; int m, n; string input; cin >> m >> n; while(m--) { cin >> input; s.insert(input); } int ans = 0; while(n--) { cin >> input; if(..

[BOJ][C++] λ°±μ€€ 20301번: λ°˜μ „ μš”μ„Έν‘ΈμŠ€

https://www.acmicpc.net/problem/20301 20301번: λ°˜μ „ μš”μ„Έν‘ΈμŠ€ 첫째 쀄에 μ •μˆ˜ $N$, $K$, $M$이 주어진닀. ($1 \leq N \leq 5\ 000$, $1 \leq K, M \leq N$) www.acmicpc.net 문제 μš”μ„Έν‘ΈμŠ€ λ¬Έμ œλŠ” λ‹€μŒκ³Ό κ°™λ‹€. 1$1$번 μ‚¬λžŒ 였λ₯Έμͺ½μ—λŠ” 2$2$번 μ‚¬λžŒμ΄ 앉아 있고, 2$2$번 μ‚¬λžŒ 였λ₯Έμͺ½μ—λŠ” 3$3$번 μ‚¬λžŒμ΄ 앉아 있고, κ³„μ†ν•˜μ—¬ 같은 λ°©μ‹μœΌλ‘œ N$N$λͺ…μ˜ μ‚¬λžŒλ“€μ΄ 원을 이루며 앉아 μžˆλ‹€. N$N$번 μ‚¬λžŒ 였λ₯Έμͺ½μ—λŠ” 1$1$번 μ‚¬λžŒμ΄ 앉아 μžˆλ‹€. 이제 K$K$(≤N$\leq N$)번 μ‚¬λžŒμ„ μš°μ„  μ œκ±°ν•˜κ³ , 이후 직전 제거된 μ‚¬λžŒμ˜ 였λ₯Έμͺ½μ˜ K$K$번째 μ‚¬λžŒμ„ 계속 μ œκ±°ν•΄ λ‚˜κ°„λ‹€. λͺ¨λ“  μ‚¬λžŒμ΄ μ œκ±°λ˜μ—ˆμ„ λ•Œ, 제거된 ..

[BOJ S4][C++] λ°±μ€€ 14911번: ꢁ합 쌍 μ°ΎκΈ°

https://www.acmicpc.net/problem/14911 14911번: ꢁ합 쌍 μ°ΎκΈ° 첫째 쀄에 빈 칸으둜 κ΅¬λΆ„λœ μ •μˆ˜κ°€ 2개 이상, 10개 μ΄ν•˜ 주어진닀. λ‘˜μ§Έ μ€„μ—λŠ” μ •μˆ˜κ°€ ν•˜λ‚˜ 주어진닀. μ£Όμ–΄μ§€λŠ” μ •μˆ˜λŠ” 100,000보닀 μž‘κ±°λ‚˜ 같은 μžμ—°μˆ˜μ΄λ‹€. www.acmicpc.net 문제 첫째 쀄에 주어진 μ—¬λŸ¬ 개의 μ •μˆ˜ μ€‘μ—μ„œ 합이 λ‘˜μ§Έ 쀄에 주어진 μˆ˜μ™€ 같은 μ„œλ‘œ λ‹€λ₯Έ μœ„μΉ˜μ— μžˆλŠ” 두 수의 μŒμ„ λͺ¨λ‘ 좜λ ₯ν•˜κ³  맨 μ•„λž˜μ— 이 쌍의 개수λ₯Ό μ΄μ–΄μ„œ 좜λ ₯ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€. μž…λ ₯ 첫째 쀄에 빈 칸으둜 κ΅¬λΆ„λœ μ •μˆ˜κ°€ 2개 이상, 10개 μ΄ν•˜ 주어진닀. λ‘˜μ§Έ μ€„μ—λŠ” μ •μˆ˜κ°€ ν•˜λ‚˜ 주어진닀. μ£Όμ–΄μ§€λŠ” μ •μˆ˜λŠ” 100,000보닀 μž‘κ±°λ‚˜ 같은 μžμ—°μˆ˜μ΄λ‹€. 좜λ ₯ 찾은 수의 μŒμ„ ν•œ 쀄에 ν•˜λ‚˜μ”© 좜λ ₯ν•˜κ³  맨 ..

[BOJ S3][C++] λ°±μ€€ 2910번: λΉˆλ„ μ •λ ¬

https://www.acmicpc.net/problem/2910 2910번: λΉˆλ„ μ •λ ¬ 첫째 쀄에 λ©”μ‹œμ§€μ˜ 길이 Nκ³Ό Cκ°€ 주어진닀. (1 ≤ N ≤ 1,000, 1 ≤ C ≤ 1,000,000,000) λ‘˜μ§Έ 쀄에 λ©”μ‹œμ§€ μˆ˜μ—΄μ΄ 주어진닀. www.acmicpc.net 문제 μœ„λŒ€ν•œ 해컀 μ°½μ˜μ΄λŠ” λͺ¨λ“  μ•”ν˜Έλ₯Ό κΉ¨λŠ” 방법을 λ°œκ²¬ν–ˆλ‹€. κ·Έ 방법은 λΉˆλ„λ₯Ό μ‘°μ‚¬ν•˜λŠ” 것이닀. μ°½μ˜μ΄λŠ” 말할 수 μ—†λŠ” 방법을 μ΄μš©ν•΄μ„œ ν˜„μš°κ°€ κ°•μ‚°μ΄μ—κ²Œ λ³΄λ‚΄λŠ” λ©”μ‹œμ§€λ₯Ό νšλ“ν–ˆλ‹€. 이 λ©”μ‹œμ§€λŠ” 숫자 N개둜 이루어진 μˆ˜μ—΄μ΄κ³ , μˆ«μžλŠ” λͺ¨λ‘ C보닀 μž‘κ±°λ‚˜ κ°™λ‹€. μ°½μ˜μ΄λŠ” 이 숫자λ₯Ό 자주 λ“±μž₯ν•˜λŠ” λΉˆλ„μˆœλŒ€λ‘œ μ •λ ¬ν•˜λ €κ³  ν•œλ‹€. λ§Œμ•½, μˆ˜μ—΄μ˜ 두 수 X와 Yκ°€ μžˆμ„ λ•Œ, Xκ°€ Y보닀 μˆ˜μ—΄μ—μ„œ 많이 λ“±μž₯ν•˜λŠ” κ²½μš°μ—λŠ” Xκ°€ Y보닀 μ•žμ— μžˆμ–΄μ•Ό ν•œλ‹€...

λ°˜μ‘ν˜•