๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ

(29)
[Java] ๋ถ€๋™์†Œ์ˆ˜์  ์˜ค์ฐจ ๊ด€๋ฆฌํ•˜๊ธฐ ๋ถ€๋™์†Œ์ˆ˜์ ์˜ ์˜ค์ฐจ์ปดํ“จํ„ฐ๋Š” 2์ง„์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹ค์ˆ˜๋ฅผ ๊ทผ์‚ฌ์น˜๋กœ ํ‘œํ˜„ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ์•„๋ž˜์™€ ๊ฐ™์€ ์ž‘์€ ์˜ค์ฐจ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. double a = 0.2 + 0.1; System.out.println(a); // output: 0.30000000000000004 ๋Œ€ํ•™๊ต 1ํ•™๋…„ 1ํ•™๊ธฐ ๋•Œ ๋ฐฐ์šฐ๋Š” ์ƒ์‹ ๊ฐ™์€ ๋‚ด์šฉ์ด๋‹ค. ์ด๊ฑธ ๋ชจ๋ฅด์ง€๋Š” ์•Š๋Š”๋‹ค. ๊ทผ๋ฐ ์žŠ์„ ๋งŒํ•  ๋•Œ์ฏค ๋‚˜ํƒ€๋‚˜ ๋‚  ์†์ƒํ•˜๊ฒŒ ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ๋‹ค์‹œ๋Š” ์ด๋Ÿฐ ์‹ค์ˆ˜๋ฅผ ๋ฒ”ํ•˜์ง€ ์•Š๊ฒ ๋‹ค๋Š” ์˜์ง€๋กœ ๋ถ€๋™์†Œ์ˆ˜์  ์˜ค์ฐจ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฒ•์„ ์ ์–ด๋ณธ๋‹ค.BigDecimal ์‚ฌ์šฉํ•˜๊ธฐJava์—์„œ๋Š” BigDecimal ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ •ํ™•ํ•œ ์†Œ์ˆ˜์  ์—ฐ์‚ฐ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๋‹จ์ ์œผ๋กœ๋Š” ์†๋„๊ฐ€ ๋Š๋ฆฌ๋‹ค๋Š” ์ ๊ณผ ์‚ฌ์šฉ๋ฒ•์ด ์กฐ๊ธˆ ๋ถˆํŽธํ•˜๋‹ค๋Š” ์ ์ด ์žˆ๋‹ค.BigDecimal a = new BigDecimal("0.1..
OneNote ์ถ”๊ฐ€ ๊ธฐ๋Šฅ (Add-in) ๋งŒ๋“ค๊ธฐ - JavaScript API ์šฐ๋ฆฌ ํšŒ์‚ฌ๋Š” ํŒ€ ๋…ธํŠธ๋ฅผ ๊ณต์œ ํ•˜๊ธฐ ์œ„ํ•ด Microsoft Office์˜ OneNote๋ฅผ ์ž์ฃผ ์‚ฌ์šฉํ•œ๋‹ค. ์ตœ๊ทผ OneNote์— ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•˜๋ฉด ์ข‹๊ฒ ๋‹ค๋Š” ์–˜๊ธฐ๊ฐ€ ๋‚˜์™”๊ณ , ๊ทธ๊ฑธ ๋‚ด๊ฐ€ ๋„๋งก์•„ ํ•˜๊ธฐ๋กœ ํ–ˆ๋Š”๋ฐ ์ธํ„ฐ๋„ท์— ์ž๋ฃŒ๊ฐ€ ๋งŽ์ง€ ์•Š์•„์„œ ์ƒ๊ฐ๋ณด๋‹ค ์• ๋ฅผ ๋จน์—ˆ๋‹ค. ๊ตฌ๊ธ€์— ๊ฒ€์ƒ‰ํ•ด๋ณด๋ฉด Word, Excel, PowerPoint์˜ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ๊ณผ ๊ด€๋ จ๋œ ๊ธ€๋“ค์€ ๋งŽ์ง€๋งŒ OneNote์™€ ๊ด€๋ จ๋œ ์ž๋ฃŒ๋Š” ์ฐพ์•„๋ณด๊ธฐ ํž˜๋“ค์—ˆ๋‹ค. ๊ทธ๋„ ๊ทธ๋Ÿด ๊ฒƒ์ด ์‹ค์ œ๋กœ OneNote์—์„œ์˜ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ์€ Word๋‚˜ Excel ๋ณด๋‹ค ํ›จ์”ฌ ์ œํ•œ์ ์ด์—ˆ๋‹ค. VBA๋ฅผ ์ด์šฉํ•œ ๊ฐ„๋‹จํ•œ ๋งคํฌ๋กœ๋ฅผ ๋งŒ๋“ค ์ˆ˜๋„ ์—†๊ณ , VSTO๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค (์—ญ์‚ฌ๊ฐ€ ๊ธธ์ง€ ์•Š์•„์„œ ๊ทธ๋Ÿฐ๊ฐ€..?) ์ด๊ฒƒ ์ €๊ฒƒ ์ฐพ์•„๋ณธ ๊ฒฐ๊ณผ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ์ฐพ์•˜๋‹ค.JavaScript API:..
[Java] ๋ฐฑ์ค€ 31804 - Chance! https://www.acmicpc.net/problem/31804ํ’€์ด์ฒ˜์Œ์—๋Š” ๊ทธ๋ฆฌ๋”” ๋ฌธ์  ๊ฐ€? ํ–ˆ๋Š”๋ฐ ๊ทธ๊ฑด ์•„๋‹ˆ์—ˆ๊ณ  dp ๋ฌธ์ œ์˜€๋‹ค.์ฐฌ์Šค๋ฅผ ์‚ฌ์šฉํ•œ ๊ฒฝ์šฐ์™€ ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋‘˜๋กœ ๋‚˜๋ˆ ์„œ dp ๋ฐฐ์—ด์„ ์ฑ„์›Œ์ฃผ๋ฉด ๋œ๋‹ค. i = ์ ์ˆ˜dp[i][0] = ์ฐฌ์Šค๋ฅผ ์•„์ง ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜์„ ๋•Œdp[i][1] = ์ฐฌ์Šค๋ฅผ ์ด๋ฏธ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ dp[i][0]์„ ์ฑ„์šฐ๊ธฐ ์œ„ํ•ด์„œ๋Š” dp[i - 1][0], dp[i / 2][0]์˜ ๊ฐ’์„ ์‚ดํŽด๋ณด๊ณ dp[i][1]์„ ์ฑ„์šฐ๊ธฐ ์œ„ํ•ด์„œ๋Š” dp[i - 1][1], dp[i / 2][1], dp[i / 10][0]์˜ ๊ฐ’์„ ์‚ดํŽด๋ณธ๋‹ค. ์ฃผ์˜ํ•  ์ ์€ i๊ฐ€ 2์˜ ๋ฐฐ์ˆ˜์ธ์ง€๋„ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค.์ฝ”๋“œ๋”๋ณด๊ธฐimport java.io.*;import java.util.*;public class Main { private..
[Java] ๋ฐฑ์ค€ 31792 - ํ•œ๋น›๋ฏธ๋””์–ด (Hard) https://www.acmicpc.net/problem/31792๋ฌธ์ œํ’€์ด์‚ฝ์ž…/์‚ญ์ œ/ํƒ์ƒ‰ ๋ชจ๋‘ ์‹œ๊ฐ„ ๋ณต์žก๋„ O(logN)์— ๊ฐ€๋Šฅํ•œ ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.์งˆ์˜ 3 (ํƒ์ƒ‰) ๊ฐ™์€ ๊ฒฝ์šฐ ๊ทธ๋ฆฌ๋””ํ•˜๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ๊ทธ๋ƒฅ ๊ฐ€๊ฒฉ์ด ๋‚ฎ์€ ์ฑ…๋ถ€ํ„ฐ ์ง„์—ดํ•˜๋‹ค๊ฐ€ ์ƒˆ๋กœ์šด ํŽ˜์ด์ง€๊ฐ€ ํ•„์š”ํ•˜๋ฉด ์ถ”๊ฐ€ํ•˜๋ฉด ๋œ๋‹ค. ๋ฌผ๋ก  ํ•˜๋‚˜ํ•˜๋‚˜์”ฉ ํƒ์ƒ‰ํ•˜๋ฉด O(N)์ด ๋˜๋ฏ€๋กœ S = S * 2  ๊ฐ™์€ ์‹์œผ๋กœ ํƒ์ƒ‰ํ•˜๊ธฐ. (TreeMap.higerKey(Key k) ๋ฉ”์„œ๋“œ๋ฅผ ํ™œ์šฉํ•˜๋ฉด ์‰ฌ์›€) ์ฝ”๋“œ๋”๋ณด๊ธฐimport java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = n..
[Java] BitSet BitSet BitSet์€ ๋น„ํŠธ๋“ค๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐฑํ„ฐ์ด๊ณ , ๊ฐ ๋น„ํŠธ๋Š” ์ธ๋ฑ์Šค๋ฅผ ํ†ตํ•ด ๊ฐœ๋ณ„์ ์œผ๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ ์—์„œ boolean ๋ฐฐ์—ด๊ณผ ์œ ์‚ฌํ•˜๋‹ค. ๋™์ ์œผ๋กœ ํฌ๊ธฐ๋ฅผ ํ™•์žฅํ•  ์ˆ˜๋„ ์žˆ์œผ๋ฉฐ, ํ•„์š”์— ๋”ฐ๋ผ์„œ ๋” ๋งŽ์€ ๋น„ํŠธ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ์ž๋™์œผ๋กœ ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•œ๋‹ค. ์ดˆ๊ธฐ๊ฐ’์€ false. ๋ฉ”์†Œ๋“œ๋“ค์€ ์—ฌ๊ธฐ์„œ: https://docs.oracle.com/javase/8/docs/api/java/util/BitSet.html BitSet vs. boolean ๋ฐฐ์—ด boolean ๋ฐฐ์—ด์˜ ๊ฐ boolean ๊ฐ’์€ 1๋น„ํŠธ๊ฐ€ ์•„๋‹Œ 1๋ฐ”์ดํŠธ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ์ด๋Š” ์ปดํ“จํ„ฐ๊ฐ€ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋Š” ์ •๋ณด์˜ ์ตœ์†Œ ๋‹จ์œ„๊ฐ€ ๋ฐ”์ดํŠธ์ด๊ธฐ ๋•Œ๋ฌธ. BitSet ํด๋ž˜์Šค๋Š” ๋น„ํŠธ ๋‹จ์œ„์˜ ์—ฐ์‚ฐ์„ ์ง€์›ํ•˜์—ฌ, ๋น„ํŠธ ๋ ˆ๋ฒจ์—์„œ ๋น ๋ฅธ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค€๋‹ค. ..
[Java] ๋ฐฑ์ค€ 2411 - ์•„์ดํ…œ ๋จน๊ธฐ https://www.acmicpc.net/problem/2411 ํ’€์ด ์•„์ดํ…œ์„ ์ฒดํฌํฌ์ธํŠธ ์‚ผ์•„ ๋ฌธ์ œ๋ฅผ ์—ฌ๋Ÿฌ ์ž‘์€ ํ–‰๋ ฌ ๊ฒฝ๋กœ ๋ฌธ์ œ๋กœ ๋‚˜๋ˆ„๊ธฐ! ์˜ˆ๋ฅผ ๋“ค์–ด, ์˜ˆ์ œ ์ž…๋ ฅ 1์˜ ๊ฒฝ์šฐ์—๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ๊ตฌ์—ญ์„ ๋‚˜๋ˆ ์„œ ๊ฐ ๊ตฌ์—ญ๋งˆ๋‹ค ํ–‰๋ ฌ ๊ฒฝ๋กœ ๋ฌธ์ œ ์ ์šฉ ๊ตฌ์—ญ์„ ๋‚˜๋ˆˆ๋‹ค๊ณ  ํ‘œํ˜„ํ–ˆ๋Š”๋ฐ ์‚ฌ์‹ค ์•„์ดํ…œ์„ ์™ผ์ชฝ ์•„๋ž˜ (1, 1) ์™€ ๊ฐ€๊นŒ์šด ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•˜๊ณ  ์ฐจ๋ก€๋Œ€๋กœ ๋จน์œผ๋กœ ๊ฐ€๋ฉด ๋จ ์ถ”๊ฐ€๋กœ, ์‹œ์ž‘์  (1, 1)๊ณผ ๋„์ฐฉ์  (N, M)์—๋„ ์•„์ดํ…œ์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๊ตฌํ˜„ ๋•Œ ํŽธํ•จ ์ฝ”๋“œ ๋”๋ณด๊ธฐ import java.io.*; import java.util.*; public class Main { public static class Point { public int row, col; public Point(int r, int c) { row..
[Java] ๋ฐฑ์ค€ 31716 - ํ˜„๋Œ€๋ชจ๋น„์Šค ์ž์œจ ์ฃผํ–‰ ํ…Œ์ŠคํŒ… 1 https://www.acmicpc.net/problem/31716 ํ’€์ด ํ•œ ํŠธ๋ž™์—์„œ 1์—ด → N์—ด๋กœ ์ด๋™ํ•˜๋Š” ์ตœ์†Œ๊ฑฐ๋ฆฌ๋Š” BFS ๋Œ๋ฆฌ๋ฉด ๊ธˆ๋ฐฉ ๋‚˜์˜ค๋Š”๋ฐ ํ•œ ํŠธ๋ž™์—์„œ ๋‹ค์Œ ํŠธ๋ž™์œผ๋กœ ๋„˜์–ด๊ฐˆ๋•Œ ์ด๋™ ๊ฑฐ๋ฆฌ๋ฅผ ๊ผผ๊ผผํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•ด์ค˜์•ผ ํ•œ๋‹ค. ํŠนํžˆ, ํ•ด๋‹น ํŠธ๋ž™ ๋„์ฐฉ์ ์˜ ํ–‰๊ณผ ๋‹ค์Œ ํŠธ๋ž™ ์‹œ์ž‘์ ์˜ ํ–‰์„ ๋งž์ถฐ์ฃผ๋Š” ์ž‘์—…์ด ํ•„์š”ํ•˜๋‹ค. ์ฝ”๋“œ ๋”๋ณด๊ธฐ import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new S..
[Java] ๋ฐฑ์ค€ 1707 - ์ด๋ถ„ ๊ทธ๋ž˜ํ”„ https://www.acmicpc.net/problem/1707 ํ’€์ด ๊ฐ ๋…ธ๋“œ๋งˆ๋‹ค 1๊ณผ -1์„ ๋ฒˆ๊ฐˆ์•„ ๋งค๊ธฐ๋ฉด์„œ ๊ทธ๋ž˜ํ”„ ํƒ์ƒ‰ (BFS/DFS): 1์ด ๋“ค์–ด๊ฐ€์•ผํ•  ๋…ธ๋“œ์— ์ด๋ฏธ -1์ด ๋“ค์–ด๊ฐ€์žˆ์œผ๋ฉด NO -1์ด ๋“ค์–ด๊ฐ€์•ผํ•  ๋…ธ๋“œ์— ์ด๋ฏธ 1์ด ๋“ค์–ด๊ฐ€์žˆ์œผ๋ฉด NO ๋ณ„ ๋ฌธ์ œ์—†์ด ๊ทธ๋ž˜ํ”„ ํƒ์ƒ‰์ด ๋๋‚˜๋ฉด YES ์ฝ”๋“œ ๋”๋ณด๊ธฐ import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int K = Integer.parseInt(br.readLin..