728x90

πŸ“• Algorithm/Solved 16

[λ°±μ€€] 4673 μ…€ν”„ λ„˜λ²„ (파이썬3 Python3)

# 1λΆ€ν„° 10000κΉŒμ§€ 숫자 μ €μž₯ num_set = set(range(1, 10001)) # μ…€ν”„ λ„˜λ²„κ°€ μ•„λ‹Œ 수λ₯Ό μ €μž₯ not_self_num= set() for i in range(1, 10001): for j in str(i): # 숫자λ₯Ό λ¬Έμžμ—΄λ‘œ λ³€ν™˜ν•˜μ—¬ 102이면 1, 0, 2둜 μ ‘κ·Ό i += int(j) # d(i) = i + j1 + j2 + j3 + .. = 102 + 1 + 0 + 2 not_self_num.add(i) # μ…€ν”„ λ„˜λ²„κ°€ μ•„λ‹Œ 수 μ €μž₯ # μ…€ν”„ λ„˜λ²„λ§Œ μžˆλŠ” set = 전체 수 set - μ…€ν”„ λ„˜λ²„κ°€ μ•„λ‹Œ 수 set self_num = num_set - not_self_num # μ˜€λ¦„μ°¨μˆœμœΌλ‘œ μ •λ ¬ ν›„ 좜λ ₯ for i in sorted(self_num): print(i)

[μ•Œκ³ λ¦¬μ¦˜ 랩슀] rook (C++, μ™„μ „ 탐색)

문제 μ²΄μŠ€μ—μ„œ λ£©μ΄λΌλŠ” 기물은 λ§‰ν˜€μžˆμ§€λ§Œ μ•ŠμœΌλ©΄ 룩의 μœ„μΉ˜μ—μ„œ 같은 ν–‰, 같은 열에 ν•΄λ‹Ήν•˜λŠ” μΉΈ 쀑 ν•˜λ‚˜λ‘œ ν•œ 번 이동할 수 μžˆλ‹€. 단, νŠΉμ • 칸이 λ§‰ν˜€μžˆλ‹€λ©΄ κ·Έ μΉΈμ—μ„œλΆ€ν„° 더 λ‚˜μ•„κ°ˆ μˆ˜λŠ” μ—†λ‹€. λ§Œμ•½ 룩이 μ•„λž˜ κ·Έλ¦Όκ³Ό 같이 5ν–‰ 4열에 μ‘΄μž¬ν•˜κ³  같은 행열에 기물이 μ—†λ‹€λ©΄ 5ν–‰μ΄λ‚˜ 4열에 μ‘΄μž¬ν•˜λŠ” μΉΈ 쀑 μ–΄λ””λ‘œλ“  갈 수 μžˆλ‹€. 예λ₯Ό λ“€μ–΄, 5ν–‰ 2μ—΄ ν˜Ήμ€ 1ν–‰ 4μ—΄λ‘œ 움직일 수 μžˆλ‹€. 차둀에 주어진 이동 νšŸμˆ˜λŠ” ν•œ λ²ˆμ΄λ―€λ‘œ 이동이 μ™„λ£Œλ˜μ—ˆλ‹€λ©΄ μƒλŒ€λ°©μ˜ μ°¨λ‘€λ‘œ λ„˜μ–΄κ°„λ‹€. μ²΄μŠ€λŠ” ν‚Ήλ§Œ 작히면 μ§€κ²Œ λ˜λŠ” κ²Œμž„μ΄λ‹€. κ·Έ μ€‘μ—μ„œλ„ μ•Œλž©μ΄λŠ” 룩으둜 인해 κ²Œμž„μ„ μ§€λŠ” 것을 κ·Ήλ„λ‘œ μ‹«μ–΄ν•œλ‹€! 주어진 체슀판의 μƒνƒœμ—μ„œ ν˜„μž¬ μ°¨λ‘€κ°€ μƒλŒ€μ˜ 차둀일 λ•Œ, 이번 차둀에 μ•Œλž©μ΄μ˜ 킹이 μƒλŒ€λ°©μ˜ λ£©μ—κ²Œ 작힐 κ°€λŠ₯성이 μžˆλŠ”μ§€ μ•Œμ•„λ³΄..

[μ•Œκ³ λ¦¬μ¦˜ 작슀] max of arr (C++, μ™„μ „ 탐색)

문제 κ³Ό 같이 9×9 κ²©μžνŒμ— 쓰여진 81개의 μžμ—°μˆ˜κ°€ μ£Όμ–΄μ§ˆ λ•Œ, 이듀 쀑 μ΅œλŒ“κ°’μ„ μ°Ύκ³  κ·Έ μ΅œλŒ“κ°’μ΄ λͺ‡ ν–‰ λͺ‡ 열에 μœ„μΉ˜ν•œ μˆ˜μΈμ§€ κ΅¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€. 예λ₯Ό λ“€μ–΄, λ‹€μŒκ³Ό 같이 81개의 μˆ˜κ°€ 주어지면 이듀 쀑 μ΅œλŒ“κ°’μ€ 90이고, 이 값은 5ν–‰ 7열에 μœ„μΉ˜ν•œλ‹€. μž…λ ₯ 첫째 쀄뢀터 아홉 번째 μ€„κΉŒμ§€ ν•œ 쀄에 아홉 κ°œμ”© μžμ—°μˆ˜κ°€ 주어진닀. μ£Όμ–΄μ§€λŠ” μžμ—°μˆ˜λŠ” 100보닀 μž‘λ‹€. 좜λ ₯ 첫째 쀄에 μ΅œλŒ“κ°’μ„ 좜λ ₯ν•˜κ³ , λ‘˜μ§Έ 쀄에 μ΅œλŒ“κ°’μ΄ μœ„μΉ˜ν•œ ν–‰ λ²ˆν˜Έμ™€ μ—΄ 번호λ₯Ό λΉˆμΉΈμ„ 사이에 두고 μ°¨λ‘€λ‘œ 좜λ ₯ν•œλ‹€. μ΅œλŒ“κ°’μ΄ 두 개 이상인 경우 κ·Έ 쀑 ν–‰μ˜ λ²ˆν˜Έκ°€ κ°€μž₯ μž‘μ€ 곳의 μœ„μΉ˜λ₯Ό 좜λ ₯ν•œλ‹€. ν–‰ λ²ˆν˜Έλ„ 같은 곳이 μ—¬λŸ¬κ°œμΌ κ²½μš°μ—λŠ” μ—΄ λ²ˆν˜Έκ°€ κ°€μž₯ μž‘μ€ 곳의 μœ„μΉ˜λ₯Ό 좜λ ₯ν•œλ‹€. #include #include usin..

[μ•Œκ³ λ¦¬μ¦˜ 작슀] GCD LCM(μ΅œλŒ€κ³΅μ•½μˆ˜ μ΅œμ†Œκ³΅λ°°μˆ˜) (C++, μ™„μ „ 탐색)

문제 두 개의 μžμ—°μˆ˜λ₯Ό μž…λ ₯λ°›μ•„ μ΅œλŒ€κ³΅μ•½μˆ˜(GCD)와 μ΅œμ†Œκ³΅λ°°μˆ˜(LCM)λ₯Ό 좜λ ₯ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€. μž…λ ₯ 첫째 μ€„μ—λŠ” 두 개의 μžμ—°μˆ˜κ°€ 주어진닀. 이 λ‘˜μ€ 10,000 μ΄ν•˜μ˜ μžμ—°μˆ˜μ΄λ©° 사이에 ν•œ 칸의 곡백이 주어진닀. 좜λ ₯ 첫째 μ€„μ—λŠ” μž…λ ₯으둜 주어진 두 수의 μ΅œλŒ€κ³΅μ•½μˆ˜λ₯Ό, λ‘˜μ§Έ μ€„μ—λŠ” μž…λ ₯으둜 주어진 두 수의 μ΅œμ†Œκ³΅λ°°μˆ˜λ₯Ό 좜λ ₯ν•œλ‹€. #include using namespace std; int gcd(int a, int b) { while (b != 0) { int r = a % b; a = b; b = r; } return a; } int lcm(int a, int b) { return a * b / gcd(a, b); } int main() { int a, b; cin >> a >> b; c..

[μ•Œκ³ λ¦¬μ¦˜ 작슀] μƒμž κΎΈλ―ΈκΈ° (C++, μ™„μ „ 탐색)

문제 면이 6개인 μƒμžκ°€ μžˆλ‹€. 이λ₯Ό μ—¬λŸ¬ 가지 색쒅이λ₯Ό λΆ™μ—¬ κΎΈλ°€λ €κ³  ν•˜λŠ”λ°, 단 쑰건이 μžˆλ‹€. μΈμ ‘ν•œ 면에 같은 μƒ‰μ˜ 색쒅이λ₯Ό 뢙이면 μ•ˆ λœλ‹€λŠ” 것이닀. λ˜ν•œ, ν•œ λ©΄μ—λŠ” ν•œ μž₯의 μƒ‰μ’…μ΄λ§Œ 뢙일 수 μžˆλ‹€. μ—¬λŸ¬ 가지 μƒ‰μ˜ 색쒅이듀이 μ£Όμ–΄μ‘Œμ„ λ•Œ, 쑰건을 λ§Œμ‘±ν•˜μ—¬ μƒμžμ˜ λͺ¨λ“  면에 뢙일 수 μžˆλŠ”μ§€ νŒλ³„ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€. μž…λ ₯ 첫째 쀄에 μƒ‰μ’…μ΄μ˜ μž₯수 N ( 1 n; vector arr(n+1, 0); for (int i = 0; i > tmp; arr[tmp]++; } int cnt = 0, cnt2 = 0; for (int i = 1; i = 2) { cnt++; continue; } if (arr[i] >= 1) cnt2++; } if (cnt..

[μ•Œκ³ λ¦¬μ¦˜ 작슀] offset (C++, μ™„μ „ 탐색)

문제 5x5 2차원 배열이 μ£Όμ–΄μ§ˆ λ•Œ μ–΄λ–€ μ›μ†Œκ°€ μƒν•˜μ’Œμš°μ— μžˆλŠ” μ›μ†Œλ³΄λ‹€ μž‘μ„ λ•Œ ν•΄λ‹Ή μœ„μΉ˜μ— * 을 ν‘œμ‹œν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€. 경계선에 μžˆλŠ” μˆ˜λŠ” μƒν•˜μ’Œμš° 쀑 μ‘΄μž¬ν•˜λŠ” μ›μ†Œλ§Œμ„ λΉ„κ΅ν•œλ‹€. μž…λ ₯ 5x5 ν–‰λ ¬μ˜ 정보가 25 개의 수둜 주어진닀. 각 μˆ˜λŠ” 0 μ—μ„œ 9 사이 μˆ˜μ΄λ‹€. 좜λ ₯ *λ₯Ό ν¬ν•¨ν•œ 행렬을 좜λ ₯예의 ν˜•μ‹μœΌλ‘œ 좜λ ₯ν•œλ‹€. #include #include #define MAX 10 using namespace std; vector arr(5, vector(5, 0)); vector chk(5, vector(5, 0)); // 5x5 λ°°μ—΄ μž…λ ₯ void input() { for (int i = 0; i > arr[i..

[μ•Œκ³ λ¦¬μ¦˜] Algorithm μ΄λž€? (μ‹œκ°„ λ³΅μž‘λ„, λΉ…μ˜€ ν‘œκΈ°λ²•)

μ•ˆλ…•ν•˜μ„Έμš”. μ½”λ”© μ’€ ν•΄λ³Έ ν•œμ½”λ”©μž…λ‹ˆλ‹€. 본ꡐ ꡐ과λͺ© 쀑 μ•Œκ³ λ¦¬μ¦˜ μˆ˜μ—…μ„ λŒ€λΉ„ν•˜μ—¬ 예슡 λ‚΄μš©μ„ μ •λ¦¬ν•΄λ³ΌκΉŒ ν•©λ‹ˆλ‹€. μ•Œκ³ λ¦¬μ¦˜μ΄λž€? - μ–΄λ– ν•œ 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•œ μ—¬λŸ¬ λ™μž‘λ“€μ˜ λͺ¨μž„ ​ κ·Έλ ‡λ‹€λ©΄ μ•Œκ³ λ¦¬μ¦˜μ„ 배우기 μœ„ν•΄μ„  μ–΄λ–»κ²Œ ν•΄μ•Ό ν• κΉŒμš”? μ•Œκ³ λ¦¬μ¦˜ κ³΅λΆ€λŠ” 문제 풀이가 ν•΅μ‹¬μž…λ‹ˆλ‹€. μ•Œκ³ λ¦¬μ¦˜ 곡뢀 방법 이런 μ•Œκ³ λ¦¬μ¦˜μ„ κ³΅λΆ€ν•˜λ©° λ¬Έμ œκ°€ μžˆλŠ” μ—¬λŸ¬ μ‚¬μ΄νŠΈκ°€ μžˆμŠ΅λ‹ˆλ‹€. ​ 1. Baekjoon https://www.acmicpc.net/ Baekjoon Online Judge Baekjoon Online Judge ν”„λ‘œκ·Έλž˜λ° 문제λ₯Ό ν’€κ³  온라인으둜 채점받을 수 μžˆλŠ” κ³³μž…λ‹ˆλ‹€. 9198 전체 문제 7870 채점 κ°€λŠ₯ν•œ 문제 6697 ν’€λ¦° 문제 36 채점 κ°€λŠ₯ν•œ μ–Έμ–΄ www.acmicpc.net 2. Algospot..

[μ•Œκ³ λ¦¬μ¦˜] Greedy Algorithmμ΄λž€? (졜적, 예제, μ •μ˜, κ°œλ…)

그리디 μ•Œκ³ λ¦¬μ¦˜ - κ²°μ •ν•΄μ•Ό ν•  λ•Œ, κ·Έ μˆœκ°„μ— κ°€μž₯ μ’‹λ‹€κ³  μƒκ°ν•˜λŠ” 것을 μ„ νƒν•˜λ©΄μ„œ 닡을 μ°Ύμ•„κ°€λŠ” μ•Œκ³ λ¦¬μ¦˜ - κ·Έ λ•ŒλŠ” μ΅œμ μΌμ§€ λͺ°λΌλ„, μ΅œμ’…μ μœΌλ‘œ 닡이 졜적이 아닐 μˆ˜λ„ μžˆλ‹€. ​ ??? : μ΅œμ μ΄λΌλ©΄μ„œ μ™œ 닡이 μ•„λ‹ˆμ£ ? ​ μ˜€ν•΄ν•˜κΈ° μ‰¬μš΄ μ•Œκ³ λ¦¬μ¦˜μž…λ‹ˆλ‹€. '그리디 μ•Œκ³ λ¦¬μ¦˜μ€ 쉽닀!' λΌλŠ” 인식이 κ°•ν•©λ‹ˆλ‹€. ν•˜μ§€λ§Œ 그렇지 μ•ŠμŠ΅λ‹ˆλ‹€. 사싀상 ​저 선택이 μ™œ μ΅œμ μΈμ§€λ₯Ό 증λͺ…ν•΄μ•Ό ν•˜κΈ° λ•Œλ¬Έμ— μ–΄λ ΅μŠ΅λ‹ˆλ‹€. 항상 졜적이 아닐 μˆ˜λ„ μžˆμœΌλ‹ˆκΉŒμš”... μ–΄λ ΅λ‚˜μš”? ν•œ 번 예λ₯Όλ“€μ–΄ λ³΄κ² μŠ΅λ‹ˆλ‹€. ​ 1) μ—¬λŸ¬λΆ„μ€ 까까λ₯Ό 사먹기 μœ„ν•΄ νŽΈμ˜μ μ— μ™”μŠ΅λ‹ˆλ‹€. μ§€κΈˆ λ”± λ§Œμ›μ΄ μžˆλŠ”λ°, 2430μ›μ΄λΌλŠ” 가격에 까까 ν•˜λ‚˜λ₯Ό μƒ€μŠ΅λ‹ˆλ‹€. 그리고 λ§Œμ› 지폐 ν•œ μž₯을 λ‚΄λ°€μ—ˆμŠ΅λ‹ˆλ‹€. 거슬러 λ°›μ•„μ•Ό ν•  λˆμ€? 7570원 μž…λ‹ˆλ‹€. 이 λ•Œ, κ±°μŠ€λ¦„..

λ°˜μ‘ν˜•