πŸ–€ Algorithm/CodeUp : Cμ–Έμ–΄ 기초 100제

[μ½”λ“œμ—… CodeUp] Cμ–Έμ–΄ 기초 100제 1020번 ~ 1027번 풀이

μ˜ˆμ§„-D 2021. 3. 23. 01:04

πŸ“ μ§€λ‚œ κΈ€

2021.03.20 - [πŸ“‚ ν”„λ‘œκ·Έλž˜λ°/C] - [μ½”λ“œμ—… CodeUp] Cμ–Έμ–΄ 기초 100제 1010번 ~ 1019번 풀이

 

[μ½”λ“œμ—… CodeUp] Cμ–Έμ–΄ 기초 100제 1010번 ~ 1019번 풀이

πŸ“ μ§€λ‚œ κΈ€ 2021.03.19 - [πŸ“‚ ν”„λ‘œκ·Έλž˜λ°/C] - [μ½”λ“œμ—… CodeUp] Cμ–Έμ–΄ 기초 100제 1001번 ~ 1008번 풀이 [μ½”λ“œμ—… CodeUp] Cμ–Έμ–΄ 기초 100제 1001번 ~ 1008번 풀이 codeup.kr/problemsetsol.php λ¬Έμ œμ§‘ codeup.kr..

hyj3463.tistory.com

 

 

μ•„λž˜ μ½”λ“œλ“€μ€ 제 κΉƒν—ˆλΈŒμ—μ„œλ„ ν™•μΈν•˜μ‹€ 수 μžˆμŠ΅λ‹ˆλ‹€. :-)

https://github.com/YejinHwang-D/Algorithm_CodeUp 

 

GitHub - YejinHwang-D/Algorithm_CodeUp: Code-up basic 100 answer using C

Code-up basic 100 answer using C. Contribute to YejinHwang-D/Algorithm_CodeUp development by creating an account on GitHub.

github.com

 


 

codeup.kr/problemsetsol.php

 

λ¬Έμ œμ§‘

 

codeup.kr

1020λ²ˆλΆ€ν„° 1027λ²ˆκΉŒμ§€λ„ μ €λ²ˆ κΈ€κ³Ό 같이 κΈ°λ³Έ μž…μΆœλ ₯ μ˜ˆμ œμž…λ‹ˆλ‹€. 

28λ²ˆλΆ€ν„°λŠ” λ°μ΄ν„°ν˜• 예제둜 λͺ…μ‹œλ˜μ–΄ μžˆμ§€λ§Œ μž…μΆœλ ₯ μ˜ˆμ œμ™€ 거의 λΉ„μŠ·ν•©λ‹ˆλ‹€.

 

 

πŸ’‘ μ•„μ£Ό μ†Œμ†Œν•œ Tip

λ°˜λ³΅λ˜λŠ” μ½”λ“œ ν‘œν˜„μ€ μ½”λ”© μŠ€νƒ€μΌ 섀정을 μ΄μš©ν•˜λ©΄ μžλ™μœΌλ‘œ μž…λ ₯ν•΄μ€λ‹ˆλ‹€. 

μžλ£Œν˜•μ€ 맀번 λ°”λ€Œλ‹ˆ μ μ–΄λ‘˜ ν•„μš” μ—†μ§€λ§Œ, scanf() λ‚˜ printf(), return 0; 등을 미리 μ μ–΄λ‘μ‹œλ©΄ μ‘°κΈˆμ€ νŽΈν•©λ‹ˆλ‹€. :-)

scanf()μ—μ„œ λ³€μˆ˜ μ•žμ— &λ₯Ό κΉŒλ¨Ήκ±°λ‚˜, printf()μ—μ„œ 특수문자 μ•žμ— \λ₯Ό λΉ λœ¨λ¦¬μ‹œλŠ” 뢄은 μ£Όμ„μœΌλ‘œ 달아두셔도 μ’‹μ•„μš”

 

 


 

 

# 1020번

좜λ ₯ μ˜ˆμ‹œ: 주민번호 XXXXXX-XXXXXXX

주의 사항: μž…λ ₯ μ‹œ '-' ꡬ뢄, 좜λ ₯ μ‹œ 자릿수

#include <stdio.h>

int main() {
	int number1, number2;
	scanf("%d-%d", &number1, &number2);
	printf("%06d%07d", number1, number2);
	return 0;
}

'-'둜 κ΅¬λΆ„ν•˜μ—¬ μž…λ ₯λ°›κ³ , 좜λ ₯ν•  λ•ŒλŠ” '-' 없이 6자리, 7자리λ₯Ό λΆ™μ—¬μ„œ 좜λ ₯ν•©λ‹ˆλ‹€. printf()μ—μ„œ 자릿수 μ„€μ •ν•˜λŠ” 방법은 %0ndμž…λ‹ˆλ‹€. (n에 μ •μˆ˜ κ°’)

 

 

# 1021번

좜λ ₯ μ˜ˆμ‹œ: ν•œ 단어 μž…λ ₯ ν›„ κ·ΈλŒ€λ‘œ 좜λ ₯

주의 사항: char μ„ μ–Έ, μž…μΆœλ ₯ μ‹œ μžλ£Œν˜•

#include <stdio.h>

int main() {
	char word[51];
	scanf("%s", &word);
	printf("%s", word);
	return 0;
}

50자 μ΄ν•˜ λ‹¨μ–΄μ΄λ―€λ‘œ char 배열을 μ„ μ–Έν•  λ•Œ, 끝의 null문자λ₯Ό 포함 word[51]둜 μ„ μ–Έν•˜λŠ” 것에 μ£Όμ˜ν•©λ‹ˆλ‹€. λ˜ν•œ μž…μΆœλ ₯ μ‹œ %c λ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šλ„λ‘ ν•©λ‹ˆλ‹€.

 

 

# 1022번

좜λ ₯ μ˜ˆμ‹œ: 곡백 문자 포함 λ¬Έμž₯ μž…μΆœλ ₯

주의 사항: char μ„ μ–Έ, 곡백 μž…λ ₯

#include <stdio.h>

int main() {
	char data[2001];
    	fgets(data, 2000, stdin);
    	printf("%s", data);
	return 0;
}

1021번과 λ§ˆμ°¬κ°€μ§€λ‘œ μ΅œλŒ€ 2000자일 λ•Œ, λ§ˆμ§€λ§‰ null 문자λ₯Ό 포함해 +1 ν•œ κ°’μœΌλ‘œ 배열을 μ„ μ–Έν•΄μ£Όμ„Έμš”. λ˜ν•œ μƒˆλ‘­κ²Œ λ“±μž₯ν•œ fgets()ν•¨μˆ˜λŠ” μ—”ν„°(\n)κ°€ μž…λ ₯될 λ•ŒκΉŒμ§€ λ¬Έμžμ—΄μ„ μž…λ ₯λ°›μŠ΅λ‹ˆλ‹€. μ΄λ•Œ printf()λŒ€μ‹  fputs(λ³€μˆ˜λͺ…)λ₯Ό μ‚¬μš©ν•˜μ…”λ„ λ©λ‹ˆλ‹€.

#include <stdio.h>

int main() {
	char data[2001];
   	scanf("%[^\n]", data);
   	printf("%s", data);
	return 0;
}

그런데 λ”±νžˆ fgets()λ₯Ό μ“°μ§€ μ•Šκ³  기쑴에 μ‚¬μš©ν•˜λ˜ scanf()λ‘œλ„ κ΅¬ν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ°”λ‘œ μžλ£Œν˜•μ„ %[^\n]둜 μ£ΌλŠ” κ±΄λ°μš”, μœ„μ—μ„œ μ–ΈκΈ‰ν–ˆλ“―μ΄ μ—”ν„°(\n)κ°€ μž…λ ₯될 λ•ŒκΉŒμ§€ λ¬Έμžμ—΄μ„ λ°›κ² λ‹€λŠ” μ˜λ―Έμž…λ‹ˆλ‹€. κ²°κ³ΌλŠ” λ™μΌν•©λ‹ˆλ‹€.

 

 

# 1023번

좜λ ₯ μ˜ˆμ‹œ: μ‹€μˆ˜λ₯Ό μ •μˆ˜/μ‹€μˆ˜λ‘œ ꡬ뢄 좜λ ₯

주의 사항: μž…λ ₯ ν˜•μ‹

#include <stdio.h>

int main() {
	int a, b;
	scanf("%d.%d", &a, &b);
	printf("%d\n%d", a, b);
	return 0;
}

μ—¬λŸ¬κ°€μ§€ 방법이 μžˆκ² μ§€λ§Œ κ°€μž₯ μ΅μˆ™ν•œ λ°©λ²•μœΌλ‘œ κ΅¬ν˜„ν•΄λ΄…λ‹ˆλ‹€. λ‹·(.)을 μ΄μš©ν•΄ λ³€μˆ˜λ₯Ό κ΅¬λΆ„ν•˜μ—¬ μž…λ ₯λ°›κ³  좜λ ₯은 \n을 μ‚¬μš©ν•΄ 각각 λ‹€λ₯Έ 쀄에 좜λ ₯ν•©λ‹ˆλ‹€. 

 

 

# 1024번

좜λ ₯ μ˜ˆμ‹œ: λ‹¨μ–΄μ˜ 문자λ₯Ό 각각 λ‹€λ₯Έ 쀄에 좜λ ₯

주의 사항: char λ°°μ—΄, 반볡문

#include <stdio.h>

int main() {
    char word[21];
	scanf("%s", &word);
	for (int i=0; word[i] != '\0'; i++) {
	    printf("\'%c\'\n", word[i]);
	}
	return 0;
}

20자 μ΄ν•˜ λ‹¨μ–΄μ΄λ―€λ‘œ char word[21]둜 μ„ μ–Έν•©λ‹ˆλ‹€. μž…λ ₯κΉŒμ§„ λ™μΌν•˜λ‚˜, 좜λ ₯은 각 λ°°μ—΄μ˜ 인덱슀(index)λ₯Ό ν•œμ€„μ— ν•˜λ‚˜μ”© 좜λ ₯ν•΄μ•Ό ν•˜λ―€λ‘œ 반볡문(for)이 ν•„μš”ν•©λ‹ˆλ‹€. λ°˜λ³΅λ¬Έμ„ 1번 μ‹€ν–‰ν•  λ•Œλ§ˆλ‹€ λ³€μˆ˜ iκ°€ 1μ”© μ¦κ°€ν•˜λ©°, i번째 word λ°°μ—΄ μΈλ±μŠ€κ°€ nullκ°’(끝)이라면 μ’…λ£Œν•©λ‹ˆλ‹€. 

μ΄λ•Œ 좜λ ₯λ¬Έμ—μ„œ 특수문자 μž‘μ€λ”°μ˜΄ν‘œ(')λ₯Ό μ‚¬μš©ν•˜κΈ° μœ„ν•΄ \λ₯Ό λ„£μ–΄μ£ΌλŠ” 것을 μžŠμ§€ λ§ˆμ„Έμš”. 

 

 

# 1025번

좜λ ₯ μ˜ˆμ‹œ: λ‹€μ„― 자리 μ •μˆ˜λ₯Ό μžλ¦¬λ³„λ‘œ 좜λ ₯

주의 사항: μžλ¦Ώκ°’

#include <stdio.h>

int main() {
	int a, b, c, d, e;
	scanf("%1d%1d%1d%1d%1d", &a, &b, &c, &d, &e);
	printf("\[%d\]\n\[%d\]\n\[%d\]\n\[%d\]\n\[%d\]\n", a*10000, b*1000, c* 100, d*10, e);
	return 0;
}

μž…λ ₯받을 λ•Œ 칸수λ₯Ό μ§€μ •ν•΄μ£Όλ©΄, λ”°λ‘œ λΆ„λ¦¬λ¬Έμžλ₯Ό μ“°μ§€ μ•Šμ•„λ„ 각 λ³€μˆ˜μ— λΆ„λ¦¬λ˜μ–΄ μ €μž₯λ©λ‹ˆλ‹€. 좜λ ₯ν•˜μ‹€ λ•ŒλŠ” μ—­μ‹œ 특수문자 μ•žμ— \λ₯Ό μ£Όμ˜ν•΄μ£Όμ‹œκ³ , 각 자리의 숫자둜 λ³€ν™˜ν•˜κΈ° μœ„ν•΄ λ³€μˆ˜μ— μ λ‹Ήν•œ 수λ₯Ό κ³±ν•΄μ€λ‹ˆλ‹€.

 

 

# 1026번

좜λ ₯ μ˜ˆμ‹œ: μ‹œ:λΆ„:초 μž…λ ₯λ°›κ³  λΆ„λ§Œ 좜λ ₯

주의 사항: λ³€μˆ˜λͺ… 주의

#include <stdio.h>

int main() {
	int h, m, s;
    scanf("%d:%d:%d", &h, &m, &s);
	printf("%d", m);
	return 0;
}

콜둠(:)으둜 λ‚˜λˆ„μ–΄ μž…λ ₯받은 κ°’μ—μ„œ μ›ν•˜λŠ” λ³€μˆ˜λ§Œ 좜λ ₯ν•©λ‹ˆλ‹€. λ”°λΌμ„œ ν•΄λ‹Ή 값이 무엇인지 μ •ν™•νžˆ μ•Œ 수 μžˆλŠ” μ‰¬μš΄ λ³€μˆ˜λͺ…이 μ’‹κ² μŠ΅λ‹ˆλ‹€. 

 

 

# 1027번

좜λ ₯ μ˜ˆμ‹œ: λ…„.μ›”.일 μž…λ ₯λ°›κ³  일-μ›”-λ…„μœΌλ‘œ 좜λ ₯

주의 사항: μž…μΆœλ ₯ ν˜•μ‹, 칸수 μ§€μ •

#include <stdio.h>

int main() {
	int y, m, d;
	scanf("%d.%d.%d", &y, &m, &d);
	printf("%02d-%02d-%04d", d, m, y);
	return 0;
}

μž…λ ₯은 λ‹·(.)으둜 κ΅¬λΆ„ν•˜κ³ , 좜λ ₯ ν˜•μ‹μ€ λŒ€μ‰¬(-)둜 μ§€μ •ν•©λ‹ˆλ‹€. λ˜ν•œ 이전 λ¬Έμ œμ—μ„œ ν–ˆλ˜ 것과 λ§ˆμ°¬κ°€μ§€λ‘œ λ…„λ„λŠ” 4μΉΈ, μ›”, 일은 2칸으둜 μ§€μ •ν•΄ 좜λ ₯ν•©λ‹ˆλ‹€.