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

πŸ’»Study/Java

(6)
[μ•Œκ³ λ¦¬μ¦˜] μœ€λ…„ κ΅¬ν•˜κΈ° μœ€λ…„μ˜ 쑰건은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€. 1. 100의 λ°°μˆ˜κ°€ μ•„λ‹ˆλ©΄μ„œ 4의 λ°°μˆ˜μ΄λ‹€. 2. 4의 λ°°μˆ˜κ°€ μ•„λ‹ˆλ©΄μ„œ 100의 λ°°μˆ˜μ΄λ‹€. 3. 400의 λ°°μˆ˜μ΄λ‹€. μ…‹ 쀑 ν•˜λ‚˜μ˜ 쑰건을 λ§Œμ‘±ν•˜λ©΄ μœ€λ…„μž…λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ 2020λ…„μ˜ 경우, 1번의 쑰건을 λ§Œμ‘±ν•˜λ―€λ‘œ μœ€λ…„μž…λ‹ˆλ‹€. 2000년은 3번의 쑰건을 λ§Œμ‘±ν•˜λ―€λ‘œ μœ€λ…„μž…λ‹ˆλ‹€. μ €λŠ” 이게 ν•œλ²ˆμ— μ•Œμ•„λ“£κΈ°κ°€ μ–΄λ €μ›Œμ„œ λ²€λ‹€μ΄μ–΄κ·Έλž¨μœΌλ‘œ κ·Έλ €λ³΄μ•˜μŠ΅λ‹ˆλ‹€. μƒ‰μΉ λœ β‘  μ˜μ—­ λ˜λŠ” β‘‘ μ˜μ—­μ— ν•΄λ‹Ήν•˜λŠ” ν•΄κ°€ μœ€λ…„μž…λ‹ˆλ‹€. 이λ₯Ό μ½”λ“œλ‘œ μ–΄λ–»κ²Œ λ‚˜νƒ€λ‚΄λ©΄ λ κΉŒμš”? β‘  : year%400 == 0 β‘‘ : (year%4==0) && (year%100!=0) β‘‘ μ˜μ—­μ€ 이 μˆ˜μ‹μ„ μƒκ°ν•˜λ©΄ λ©λ‹ˆλ‹€. 4의 배수-100의 λ°°μˆ˜λŠ”, 4의 λ°°μˆ˜μ—μ„œ 100의 λ°°μˆ˜κ°€ μ•„λ‹Œ 것을 μ œμ™Έν•˜λ©΄ λœλ‹€λŠ” λœ»μž…λ‹ˆλ‹€. 그러면 ..
[μ•Œκ³ λ¦¬μ¦˜] μ†Œμˆ˜ κ΅¬ν•˜κΈ°(3) - μ—λΌν† μŠ€ν…Œλ„€μŠ€μ˜ μ ‘κ·Ό μ•žμ„œ μ†Œμˆ˜ κ΅¬ν•˜λŠ” μ•Œκ³ λ¦¬μ¦˜μ„ 두 κ°€μ§€ μ•Œμ•„λ³΄μ•˜μŠ΅λ‹ˆλ‹€. 이듀을 κ°œμ„ ν•œ μ„Έ 번째 방법에 λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€. 사싀 μ’€ μ–΄λ ΅μŠ΅λ‹ˆλ‹€. 정신을 바짝 차리고... μ‹œμž‘ν•©λ‹ˆλ‹€. 두 번째 방법을 λ‹€μ‹œ ν•œλ²ˆ μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€. 2 이상 n-1 μ΄ν•˜μ˜ λͺ¨λ“  μ†Œμˆ˜λ‘œ λ‚˜λˆ„μ—ˆμ„ λ•Œ λ‚˜λˆ„μ–΄ λ–¨μ–΄μ§€μ§€ μ•ŠλŠ”λ‹€. 이 방법을 μ–΄λ–»κ²Œ κ°œμ„ ν•  수 μžˆμ„κΉŒμš”? λ‚˜λˆ—μ…ˆμ˜ 횟수λ₯Ό 쀄이면 λ©λ‹ˆλ‹€. 이미 ν•œ μ°¨λ‘€ λ‚˜λˆ—μ…ˆμ˜ 횟수λ₯Ό μ€„μ˜€λŠ”λ°, μ–΄λ–»κ²Œ ν•˜λ©΄ λ‹€μ‹œ 쀄일 수 μžˆμ„μ§€ 생각해 λ³΄κ² μŠ΅λ‹ˆλ‹€. μ΄μ―€μ—μ„œ λ‹€μ‹œ ν•œ 번 상기해야 ν•  것은, μ†Œμˆ˜ κ΅¬ν•˜κΈ°μ˜ λ³Έμ§ˆμ€ 'μ•½μˆ˜ κ΅¬ν•˜κΈ°'λΌλŠ” κ²ƒμž…λ‹ˆλ‹€. ν”„λ‘œκ·Έλž¨ μƒμ—μ„œλŠ” n%i==0이 성립할 λ•Œ iλŠ” n의 μ•½μˆ˜λΌκ³  νŒλ‹¨ν•©λ‹ˆλ‹€. μ•½μˆ˜ κ΅¬ν•˜κΈ°λ₯Ό ν•˜λ©΄μ„œ μ΄λŸ¬ν•œ 방법을 μ‚¬μš©ν•΄ λ³Έ 적이 μžˆμ„ κ²ƒμž…λ‹ˆλ‹€. 100을 μ˜ˆμ‹œλ‘œ λ“€μ–΄λ³΄κ² μŠ΅λ‹ˆλ‹€..
[μ•Œκ³ λ¦¬μ¦˜] μ†Œμˆ˜ κ΅¬ν•˜κΈ°(2) - μ—λΌν† μŠ€ν…Œλ„€μŠ€μ˜ 체 μ•„λž˜λŠ” μ†Œμˆ˜ κ΅¬ν•˜κΈ°(1)μ—μ„œ ν–ˆλ˜ μ΄μ•ΌκΈ°μ˜ μš”μ•½μž…λ‹ˆλ‹€. (μ°Έκ³  : https://unounou.tistory.com/5) 2 이상 n-1 μ΄ν•˜μ˜ λͺ¨λ“  μ •μˆ˜λ‘œ λ‚˜λˆ„μ—ˆμ„ λ•Œ λ‚˜λˆ„μ–΄ λ–¨μ–΄μ§€μ§€ μ•ŠλŠ”λ‹€. (1) ↓ 2 이상 n-1 μ΄ν•˜μ˜ λͺ¨λ“  μ†Œμˆ˜λ‘œ λ‚˜λˆ„μ—ˆμ„ λ•Œ λ‚˜λˆ„μ–΄ λ–¨μ–΄μ§€μ§€ μ•ŠλŠ”λ‹€. (2) 7이 2둜 λ‚˜λˆ„μ–΄ λ–¨μ–΄μ§€μ§€ μ•ŠλŠ”λ‹€λ©΄, 2의 배수인 4와 6μœΌλ‘œλ„ λ‚˜λˆ„μ–΄ λ–¨μ–΄μ§€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 7%2 7%3 7%4 → λΆˆν•„μš”ν•œ μ—°μ‚° 7%5 7%6 → λΆˆν•„μš”ν•œ μ—°μ‚° 방법(1)μ—μ„œλŠ” μœ„μ˜ λ‚˜λˆ—μ…ˆμ„ μ „λΆ€ ν–ˆμ§€λ§Œ 이 μ€‘μ—λŠ” λΆˆν•„μš”ν•œ 연산이 μ‘΄μž¬ν•©λ‹ˆλ‹€. 7%4와 7%6μž…λ‹ˆλ‹€. 즉, 방법(1)μ—μ„œ λΆˆν•„μš”ν•œ 연산을 μ œκ±°ν•œ 것이 방법(2)μž…λ‹ˆλ‹€. λ”± 봐도 κ·Έλ ‡μ§€λ§Œ 방법(2)κ°€ 더 μ–΄λ ΅μŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ μ–΄λ €μšΈ 수둝 μ°¨λΆ„νžˆ, μ°¨κ·Όμ°¨κ·Ό! 이 λ°©..
[μ•Œκ³ λ¦¬μ¦˜] μ†Œμˆ˜ κ΅¬ν•˜κΈ°(1) μžμ—°μˆ˜(=μ–‘μ˜ μ •μˆ˜)λŠ” μ„Έ κ°€μ§€λ‘œ λ‚˜λˆ„μ–΄ μ§‘λ‹ˆλ‹€. 1, μ†Œμˆ˜, 그리고 ν•©μ„±μˆ˜μž…λ‹ˆλ‹€. μ†Œμˆ˜λž€, 1κ³Ό 자기 μžμ‹ μ„ μ œμ™Έν•œ μ–΄λ–€ μ •μˆ˜λ‘œλ„ λ‚˜λˆ„μ–΄ λ–¨μ–΄μ§€μ§€ μ•ŠλŠ” μ •μˆ˜λ₯Ό λœ»ν•©λ‹ˆλ‹€. 1κ³Ό μ†Œμˆ˜λ₯Ό μ œμ™Έν•œ λͺ¨λ“  μžμ—°μˆ˜λŠ” ν•©μ„±μˆ˜μ— μ†ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ 7의 μ•½μˆ˜λŠ” 1κ³Ό 7 λΏμ΄λ―€λ‘œ μ†Œμˆ˜μ΄κ³ , 6의 μ•½μˆ˜λŠ” 1, 2, 3, 6μ΄λ―€λ‘œ ν•©μ„±μˆ˜μž…λ‹ˆλ‹€. μ–΄λ–€ μžμ—°μˆ˜κ°€ μ†Œμˆ˜μΈμ§€ μ•„λ‹Œμ§€ νŒλ³„ν•˜κΈ° μœ„ν•΄μ„œλŠ” ν•΄λ‹Ή 숫자의 μ•½μˆ˜λ₯Ό 생각해 보면 λœλ‹€λŠ” λœ»μž…λ‹ˆλ‹€. μ•½μˆ˜μ˜ κ°œλ…μ€ μ΄ˆλ“±ν•™κ΅ λ•Œ 처음 λ°°μ›Œ 계속 써먹기 λ•Œλ¬Έμ— λ¨Έλ¦¬λ‘œλŠ” 금방 νŒλ‹¨ν•  수 μžˆμ§€λ§Œ μˆ˜κ°€ 쑰금만 컀지면 νž˜λ“€μ–΄μ§‘λ‹ˆλ‹€. 2, 3, 5, 7, 11, 13...κΉŒμ§€λŠ” κΈˆλ°©μ΄μ§€λ§Œ, 479κ°€ μ†Œμˆ˜μΈμ§€ νŒλ‹¨ν•˜λ €λ©΄ μ–΄λ–¨κΉŒμš”? 이λ₯Ό νŒλ‹¨ν•˜κΈ° μœ„ν•΄μ„œλŠ” μ•Œκ³ λ¦¬μ¦˜μ„ 생각해 봐야 ν•©λ‹ˆλ‹€. 2 이상 ..
μ–‘μ˜ μ •μˆ˜μ˜ 길이 κ΅¬ν•˜κΈ° 문제λ₯Ό ν‘ΈλŠ” 도쀑 μ •μˆ˜μ˜ 길이λ₯Ό ꡬ해야 ν•˜λŠ” 뢀뢄이 μžˆμ—ˆμŠ΅λ‹ˆλ‹€. 방법은 λ‹€μ–‘ν•˜κ²Œ μžˆμ„ 것 κ°™μŠ΅λ‹ˆλ‹€. 효율적인 방법뢀터 μ•„μ£Ό λΉ„νš¨μœ¨μ μΈ λ°©λ²•κΉŒμ§€.. String의 길이λ₯Ό ꡬ할 λ•ŒλŠ” κ°„λ‹¨ν•˜κ²Œ length() λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•˜λ©΄ λ˜μ§€λ§Œ, μ •μˆ˜λŠ” μ•½κ°„ λ‹€λ₯Έ 방식을 μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€. κ·Έ μ€‘μ—μ„œ κ°€μž₯ κ°„λ‹¨ν•œ 방법 두 κ°€μ§€λ₯Ό ν¬μŠ€νŒ…ν•΄λ΄…λ‹ˆλ‹€. 1. Math.log() λ©”μ†Œλ“œ 이용 : (int)(Math.log10(num)+1) κ²°λ‘ λΆ€ν„° λ§ν•˜μžλ©΄ (int)(Math.log10(num)+1)μ—μ„œ num에 자릿수λ₯Ό κ΅¬ν•˜κ³ μž ν•˜λŠ” 숫자λ₯Ό λ„£μœΌλ©΄ λ©λ‹ˆλ‹€. 참고둜 num에 음수 λ˜λŠ” 0은 λŒ€μž…ν•  수 μžˆμœΌλ‚˜ μ›ν•˜λŠ” 값이 λ‚˜μ˜€μ§€ μ•Šμ„ κ²ƒμž…λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, int(Math.log10(32)+1)을 ν•˜λ©΄ 2κ°€ 리턴될 κ²ƒμž…λ‹ˆλ‹€. 32λŠ” ..
String.formatκ³Ό System.out.printf λ‹€μŒκ³Ό 같은 μ½”λ“œλ₯Ό ν•΄μ„ν•˜λŠ” 법을 μ•Œμ•„λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€. int n = 2; int a = 3; int b = 4; int c = 5; System.out.printf(String.format("%%2d, %%%dd, %%d", n), a, b, c); λ³΅μž‘ν•΄ 보일 수둝 μ°¨κ·Όμ°¨κ·Ό μ ‘κ·Όν•΄μ•Ό ν•©λ‹ˆλ‹€. 일단 μ•ˆμͺ½μ— μžˆλŠ” String.format("%%2d, %%%dd, %%d", n)을 λ¨Όμ € μ‚΄νŽ΄λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€. Javaμ—μ„œ μ œκ³΅ν•˜λŠ” String 클래슀의 format λ©”μ†Œλ“œλŠ” μ§€μ •λœ μœ„μΉ˜μ— 값을 λŒ€μž…ν•œ 것을 λ¬Έμžμ—΄ ν˜•μ‹μœΌλ‘œ λ°˜ν™˜ν•˜λŠ” λ©”μ†Œλ“œμž…λ‹ˆλ‹€. ν˜•μ‹μ€ Cλ‚˜ Java의 printf와 λ™μΌν•˜κ²Œ %d, %s, %f λ“±μ˜ μ„œμ‹μ„ μ‚¬μš©ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, String.format("%3d, %2d", 10, 20)..