์ „์ฒด ๊ธ€ 90

[๋ฐฑ์ค€ 9996] ํ•œ๊ตญ์ด ๊ทธ๋ฆฌ์šธ ๋• ์„œ๋ฒ„์— ์ ‘์†ํ•˜์ง€

๋ฌธ์ œ 9996๋ฒˆ: ํ•œ๊ตญ์ด ๊ทธ๋ฆฌ์šธ ๋• ์„œ๋ฒ„์— ์ ‘์†ํ•˜์ง€ ์ด N๊ฐœ์˜ ์ค„์— ๊ฑธ์ณ์„œ, ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง„ i๋ฒˆ์งธ ํŒŒ์ผ ์ด๋ฆ„์ด ํŒจํ„ด๊ณผ ์ผ์น˜ํ•˜๋ฉด "DA", ์ผ์น˜ํ•˜์ง€ ์•Š์œผ๋ฉด "NE"๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ์ฐธ๊ณ ๋กœ, "DA"๋Š” ํฌ๋กœ์•„ํ‹ฐ์–ด์–ด๋กœ "YES"๋ฅผ, "NE"๋Š” "NO"๋ฅผ ์˜๋ฏธํ•œ๋‹ค. www.acmicpc.net ํ’€์ด ์‹คํŒจํ•œ ์ฝ”๋“œ ๋กœ๊ทธ์ธ www.acmicpc.net ์•„์ด๋””์–ด ์ฃผ์–ด์ง„ ํŒจํ„ด์—์„œ * ๊ฐ€ ์œ„์น˜ํ•œ ์ธ๋ฑ์Šค ๋ฒˆํ˜ธ๋ฅผ ์ฐพ๋Š”๋‹ค. ์ž…๋ ฅํ•œ ํŒŒ์ผ๋ช…์˜ prefix ์™€ suffix ๋ฅผ ์ถ”์ถœํ•œ๋‹ค. ํŒจํ„ด๊ณผ ๋Œ€์กฐํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ๋ฌธ์ œ์  substr() ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๋ฌด๋ถ„๋ณ„ํ•œ ๋ฐ˜๋ณต๋ฌธ ์‚ฌ์šฉํ•œ ๊ฒƒ find() ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•ด * ์˜ ์œ„์น˜๋ฅผ ์ฐพ์€ ๊ฒƒ ํŒŒ์ผ๋ช…์˜ ๊ธธ์ด๊ฐ€ ํŒจํ„ด์˜ prefix ์™€ suffix ์˜ ๊ธธ์ด ํ•ฉ๋ณด๋‹ค ์ž‘์€ ๊ฒฝ์šฐ๋ฅผ ..

Algorithm 2023.04.04

[๋ฐฑ์ค€ 11655] ROT13

๋ฌธ์ œ 11655๋ฒˆ: ROT13 ์ฒซ์งธ ์ค„์— ์•ŒํŒŒ๋ฒณ ๋Œ€๋ฌธ์ž, ์†Œ๋ฌธ์ž, ๊ณต๋ฐฑ, ์ˆซ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด S๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. S์˜ ๊ธธ์ด๋Š” 100์„ ๋„˜์ง€ ์•Š๋Š”๋‹ค. www.acmicpc.net ํ’€์ด ๋กœ๊ทธ์ธ www.acmicpc.net using namespace std; // ์•”ํ˜ธํ™” > ์•ŒํŒŒ๋ฒณ ์œ„์น˜ +13 // ๋ณตํ˜ธํ™” > ์•”ํ˜ธํ™”๋œ ์•ŒํŒŒ๋ฒณ ์œ„์น˜ +13 // ์˜ˆ์™ธ > ์•ŒํŒŒ๋ฒณ์ด ์•„๋‹Œ ๋ฌธ์ž๋Š” ํŒจ์Šค // A : 65 // Z : 90 // a : 97 // z : 122 string input; void encrypt(char c, bool isBig) { int start = 'a'; if (isBig) start = 'A'; int result = c - start + 13; if (26

Algorithm 2023.04.03

[๋ฐฑ์ค€ 10988] ํŒฐ๋ฆฐ๋“œ๋กฌ์ธ์ง€ ํ™•์ธํ•˜๊ธฐ

๋ฌธ์ œ 10988๋ฒˆ: ํŒฐ๋ฆฐ๋“œ๋กฌ์ธ์ง€ ํ™•์ธํ•˜๊ธฐ ์ฒซ์งธ ์ค„์— ๋‹จ์–ด๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋‹จ์–ด์˜ ๊ธธ์ด๋Š” 1๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 100๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์œผ๋ฉฐ, ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. www.acmicpc.net ํ’€์ด ์ž…๋ ฅํ•œ ๋ฌธ์ž์—ด์„ ๋ฐ˜์œผ๋กœ ๋‚˜๋ˆ„๊ณ , ์•ž ๋ถ€๋ถ„๊ณผ ์ด๋ฅผ ๋’ค์ง‘์€ ๊ณณ์— ์œ„์น˜ํ•œ ๊ฐ’์„ ๋น„๊ตํ•˜๋Š” ๋ฐฉ๋ฒ• #include using namespace std; int solve(string str) { int center = (str.length() / 2) + (str.length() % 2); // ์ค‘๊ฐ„์˜ ์ „๋ฉด๊ณผ ํ›„๋ฉด์„ ๋น„๊ต for (int i = 0; i < center; i++) { int j = str.length() - i - 1; if (str[i] != str[j]) return 0; } return 1; } ..

Algorithm 2023.03.29

[๋ฐฑ์ค€ 2979] ํŠธ๋Ÿญ ์ฃผ์ฐจ

๋ฌธ์ œ 2979๋ฒˆ: ํŠธ๋Ÿญ ์ฃผ์ฐจ ์ฒซ์งธ ์ค„์— ๋ฌธ์ œ์—์„œ ์„ค๋ช…ํ•œ ์ฃผ์ฐจ ์š”๊ธˆ A, B, C๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (1 โ‰ค C โ‰ค B โ‰ค A โ‰ค 100) ๋‹ค์Œ ์„ธ ๊ฐœ ์ค„์—๋Š” ๋‘ ์ •์ˆ˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ด ์ •์ˆ˜๋Š” ์ƒ๊ทผ์ด๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํŠธ๋Ÿญ์ด ์ฃผ์ฐจ์žฅ์— ๋„์ฐฉํ•œ ์‹œ๊ฐ„๊ณผ ์ฃผ์ฐจ์žฅ www.acmicpc.net ํ’€์ด #include using namespace std; int timeCount[101], feeTable[3], parkingTime[3][2], amount; int main() { // ์š”๊ธˆ ํ…Œ์ด๋ธ” ์ž…๋ ฅ scanf("%d %d %d", &feeTable[0], &feeTable[1], &feeTable[2]); for (int i = 0; i < 3; i++) { // ์ฃผ์ฐจ์‹œ๊ฐ„ ์ž…๋ ฅ scanf("%d %d", &parkingTi..

Algorithm 2023.03.28

[๋ฐฑ์ค€ 10808] ์•ŒํŒŒ๋ฒณ ๊ฐœ์ˆ˜

๋ฌธ์ œ 10808๋ฒˆ: ์•ŒํŒŒ๋ฒณ ๊ฐœ์ˆ˜ ๋‹จ์–ด์— ํฌํ•จ๋˜์–ด ์žˆ๋Š” a์˜ ๊ฐœ์ˆ˜, b์˜ ๊ฐœ์ˆ˜, โ€ฆ, z์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ์ถœ๋ ฅํ•œ๋‹ค. www.acmicpc.net ํ’€์ด #include using namespace std; string s; int result['z' + 1]; int main() { cin >> s; for (char c: s) { result[c]++; } for (int i = 'a'; i

Algorithm 2023.03.28

[๋ฐฑ์ค€ 2309] ์ผ๊ณฑ ๋‚œ์Ÿ์ด

๋ฌธ์ œ 2309๋ฒˆ: ์ผ๊ณฑ ๋‚œ์Ÿ์ด ์•„ํ™‰ ๊ฐœ์˜ ์ค„์— ๊ฑธ์ณ ๋‚œ์Ÿ์ด๋“ค์˜ ํ‚ค๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ฃผ์–ด์ง€๋Š” ํ‚ค๋Š” 100์„ ๋„˜์ง€ ์•Š๋Š” ์ž์—ฐ์ˆ˜์ด๋ฉฐ, ์•„ํ™‰ ๋‚œ์Ÿ์ด์˜ ํ‚ค๋Š” ๋ชจ๋‘ ๋‹ค๋ฅด๋ฉฐ, ๊ฐ€๋Šฅํ•œ ์ •๋‹ต์ด ์—ฌ๋Ÿฌ ๊ฐ€์ง€์ธ ๊ฒฝ์šฐ์—๋Š” ์•„๋ฌด๊ฑฐ๋‚˜ ์ถœ๋ ฅํ•œ๋‹ค. www.acmicpc.net ํ’€์ด #include using namespace std; int main() { // ์ž…๋ ฅ๋œ ๋‚œ์Ÿ์ด๋“ค์˜ ํ‚ค int array[9]; for (int i = 0; i > array[i]; } // ๋‚œ์Ÿ์ด ์ •๋ ฌ (์˜ค๋ฆ„์ฐจ์ˆœ) for (int n = 0; n < 9; n++) { for (int m = n + 1; m < 9; m++) { if (array[m]

Algorithm 2023.03.28

์•„์ด๋“ค๋‚˜๋ผ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ํšŒ๊ณ 

๋ฉฐ์น  ์ „ LGU+ ์‚ฐํ•˜์˜ ์•„์ด๋“ค๋‚˜๋ผ Backend Engineer ์ฑ„์šฉ ๊ณต๊ณ ์— ์ ‘์ˆ˜ํ–ˆ๋‹ค. ์ด์ง ์ค€๋น„๋ฅผ ๋งˆ์Œ ๋จน๊ณ  ๊ทธ๊ฐ„ ๋‹ค๋“ฌ์€ ๋‚ด์šฉ์„ ์กฐ๊ธˆ ๋” ๋””๋ฒจ๋กญํ•ด ์ง€๋‚œ ํ™”์š”์ผ์— ์ ‘์ˆ˜ํ–ˆ๋Š”๋ฐ ๊ธˆ์š”์ผ ํ‡ด๊ทผ ์ „ ์„œ๋ฅ˜ ํ•ฉ๊ฒฉ์ด๋ผ๋Š” ์—ฐ๋ฝ์„ ๋ฐ›๊ฒŒ ๋๋‹ค. ๊ตญ๋น„ ํ•™์› ์ˆ˜๋ฃŒ ์ดํ›„ ์•ฝ 3๋…„ ๋งŒ์— ์ฒ˜์Œ ์ง€์›ํ•œ ํšŒ์‚ฌ์— ๋œ์ปฅ ์„œ๋ฅ˜ ํ•ฉ๊ฒฉ ํ†ต๋ณด๋ฅผ ๋ฐ›์œผ๋‹ˆ ๊ธฐ์˜๊ธฐ๋„ ํ•˜๋ฉด์„œ ์•ž์œผ๋กœ ๋„˜์–ด์•ผ ํ•  ์‚ฐ๋“ค์ด ๊ฑฑ์ •๋˜์–ด ๊ธฐ๋ถ„์ด ์‹ฑ์ˆญ์ƒ์ˆญํ–ˆ๋‹ค. ํ† ์š”์ผ๋ถ€ํ„ฐ ์›”์š”์ผ ์‚ฌ์ด์— ํŽธํ•œ ์‹œ๊ฐ„์— ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ผ๋Š” ์•ˆ๋‚ด๋ฅผ ๋ฐ›์•˜๋Š”๋ฐ, ๋‚˜๋Š” ์‹œํ—˜์„ ๋ณด๊ธฐ๋„ ์ „์— ๋งŽ์ด ๊ธด์žฅ๋œ ์ƒํƒœ์˜€๋‹ค. ์‚ฌ์‹ค ์ „ํ˜•์— ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ๋Š” ์ตœ๋Œ€ํ•œ ํ”ผํ•˜๋ ค๊ณ  ํ–ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์‹ ์ž…์œผ๋กœ ์ž…์‚ฌ ํ›„ ์ง€๋‚œ 3๋…„ ๊ฐ„ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋ฅผ ๋Œ€๋น„ํ•˜๊ธฐ๋ณด๋‹ค๋Š” ์‹ค๋ฌด์—์„œ ํ•„์š”ํ•œ ์Šคํ‚ฌ์„ ๋นจ๋ฆฌ ์Šต๋“ํ•˜๋Š” ๊ฒƒ์— ์ง‘์ค‘ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด..

[QueryDSL] NoSuchMethodError Trouble Shooting

๋“ค์–ด๊ฐ€๊ธฐ ์•ž์„œ ํ˜„์žฌ QueryDSL 5.0.0 ๋ฒ„์ „์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ”„๋กœ์ ํŠธ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ๋Š”๋ฐ, ๋ณต์žกํ•œ ์—ฐ๊ด€๊ด€๊ณ„๋ฅผ ๊ฐ€์ง€๋Š” ํ…Œ์ด๋ธ”์„ JPA Mapping ์„ ์‚ฌ์šฉํ•ด ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ˆ˜ํ–‰ํ•  ๊ฒฝ์šฐ ๋„ˆ๋ฌด ๋งŽ์€ ์ฟผ๋ฆฌ๋ฅผ ์š”์ฒญํ•˜๊ฒŒ ๋˜์–ด ๋ถˆํ•„์š”ํ•œ ์ž์›์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด @Query ์• ๋…ธํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ•ด ๋ ˆํผ์ง€ํ† ๋ฆฌ์— ์กฐํšŒ ๋ฉ”์†Œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์„ ๊ณ ๋ ค ํ–ˆ์ง€๋งŒ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ด์œ ๋กœ ๋ฐ˜๋ คํ–ˆ๋‹ค. ์—ฌ๋Ÿฌ ํ…Œ์ด๋ธ”์„ ํ•œ ๋ฒˆ์— ์กฐํšŒํ•ด ํ•˜๋‚˜์˜ ๋„๋ฉ”์ธ ํด๋ž˜์Šค๋กœ ์žฌ๊ตฌ์„ฑํ•ด์•ผ ํ•˜๋ฉฐ, ์—ฌ๋Ÿฌ ์กฐ๊ฑด์˜ ๊ฒฐ๊ณผ๋ฅผ GroupBy ํ•˜์—ฌ ์ž„๋ฒ ๋””๋“œ ํด๋ž˜์Šค์˜ ํ•„๋“œ์— ํ• ๋‹นํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ์—์„œ @Query ์• ๋…ธํ…Œ์ด์…˜์€ ๊ตฌํ˜„์ด ์–ด๋ ค์šธ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ํŠน์ • ์—”ํ‹ฐํ‹ฐ์˜ ๋ ˆํผ์ง€ํ† ๋ฆฌ์— @Query ๋ฅผ ์‚ฌ์šฉํ•ด ์กฐํšŒ ๋ฉ”์†Œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์€ ํ•ด๋‹น ๋ ˆํผ์ง€ํ† ๋ฆฌ..

Programming/Spring 2023.02.22

[์›ํ‹ฐ๋“œ X ์ธํ”„๋Ÿฐ] Kotlin + Spring Networking Meet Up

์ง€๊ธˆ ์šฐ๋ฆฌ ํšŒ์‚ฌ๋Š” ํ˜„์žฌ ํšŒ์‚ฌ์—์„œ ์šด์˜ ์ค‘์ธ ์–ด๋“œ๋ฏผ์€ ๋น ๋ฅด๊ฒŒ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•ด Trimou ๋ฅผ ์ฑ„ํƒํ•ด ๊ฐœ๋ฐœํ–ˆ๋Š”๋ฐ, ํ•ด๋‹น ํ…œํ”Œ๋ฆฟ์ด Spring Boot 2.X ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ์ด์Šˆ๊ฐ€ ์žˆ์–ด ์–ด์ฉ” ์ˆ˜ ์—†์ด(?) Java 8 + Spring Boot 1.5.13 ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ชจ๋“  ์„œ๋น„์Šค๊ฐ€ ์šด์˜๋˜๊ณ  ์žˆ๋‹ค. ๋˜ํ•œ ๋ชจ๋“  ๋„๋ฉ”์ธ์ด ํ•˜๋‚˜์˜ ํ”„๋กœ์ ํŠธ์—์„œ ๋ฉ€ํ‹ฐ ๋ชจ๋“ˆ๋กœ ๊ด€๋ฆฌ๋˜๊ณ  ์žˆ์–ด ์‰ฝ๊ฒŒ ๋ฒ„์ „์„ ์˜ฌ๋ฆด ์ˆ˜ ์—†๋Š” ์ƒํ™ฉ์ด์—ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋‚ด๋ถ€์ ์ธ ์ด์Šˆ๋กœ ์ธํ•ด Spring Boot 2 ๋ถ€ํ„ฐ ์ง€์›ํ•˜๋Š” Optional ์„ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•ด ๋งค๋ฒˆ ๋ณ„๋„์˜ Nullable Check ๋ฅผ ํ•ด์ค˜์•ผ ํ•˜๋Š” ๋ถˆํŽธํ•จ์„ ํ•ญ์ƒ ๋Š๊ผˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์—ฌ๋Ÿฌ ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ Kotlin ์— ๋Œ€ํ•œ ์ฃผ์ œ๊ฐ€ ์ž์ฃผ ์–ธ๊ธ‰๋˜๋‹ค ๋ณด๋‹ˆ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๊ด€์‹ฌ์„ ๊ฐ€์ง€๊ฒŒ ๋˜์—ˆ๊ณ , ํ† ์ด ํ”„๋กœ์ ํŠธ๋กœ ๊ฐ€์ง€๊ณ  ..

Criteria API

Goal Criteria API CriteriaBuilder CriteriaQuery Criteria API Java Persistence Criteria API ๋Š” JPQL ์˜ ๋ฌธ์ž์—ด ๊ธฐ๋ฐ˜ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ด์šฉํ•˜๋Š” ๋Œ€์‹  ๊ฐ์ฒด ๊ธฐ๋ฐ˜ ์ฟผ๋ฆฌ ์ •์˜ ๊ฐœ์ฒด์˜ ๊ตฌ์„ฑ์„ ํ†ตํ•ด ๋™์  ์ฟผ๋ฆฌ๋ฅผ ์ •์˜ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. Critera API ์—๋Š” type-restricted mode, non-typed mode ๋กœ ๋‚˜๋‰˜๋ฉฐ, ๋Ÿฐํƒ€์ž„ ์‹œ ๋™์ ์œผ๋กœ ์กฐํšŒ ๋นŒ๋“œ๋ฅผ ์ง€์›ํ•ด ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๊ฒ€์ฆํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค. ๋˜ํ•œ Criteria API ๋Š” ๋™์  ์ฟผ๋ฆฌ์—๋งŒ ์‚ฌ์šฉ๋˜์–ด ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋˜๋Š” Named Query ์—์„œ๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ๋™์  ์ฟผ๋ฆฌ์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด ๊ธฐ์กด์˜ ์ •์  Named Query ์— ๋น„ํ•ด ์„ฑ๋Šฅ์ด ๋›ฐ์–ด๋‚˜์ง€ ์•Š๋‹ค. ๊ทธ๋Ÿฌํ•œ ์ด์œ ๋กœ JPA ..

Programming/Spring 2023.01.28