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

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

μ˜ˆμ§„-D 2021. 4. 29. 18:03

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

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

 

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

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

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

1038λ²ˆλΆ€ν„° 1046λ²ˆκΉŒμ§€λŠ” μ‚°μˆ μ—°μ‚° μ˜ˆμ œμž…λ‹ˆλ‹€. 

μ—­μ‹œ μžλ£Œν˜•μ— μ£Όμ˜ν•˜λ©° ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•΄μ•Ό ν•©λ‹ˆλ‹€. 

 

 

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

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

 

 


 

 

# 1038~1039번

좜λ ₯ μ„€λͺ…: 2개의 μ •μˆ˜λ₯Ό μž…λ ₯λ°›μ•„ 합을 좜λ ₯

주의 사항: λ°μ΄ν„°ν˜•

#include <stdio.h>

int main() {
	long long a, b;
	scanf("%lld %lld", &a, &b);
	printf("%lld", a+b);
	return 0;
}

1038번과 1039λ²ˆμ€ 같은 μ½”λ“œλ‘œ 풀이가 κ°€λŠ₯ν•©λ‹ˆλ‹€. 차이점은 1038λ²ˆμ—μ„œλŠ” μž…λ ₯λ˜λŠ” μ •μˆ˜μ˜ λ²”μœ„λŠ” int의 λ²”μœ„μ§€λ§Œ 두 μ •μˆ˜μ˜ 합이 int의 λ²”μœ„λ₯Ό λ²—μ–΄λ‚˜κ³ , 1039λ²ˆμ€ μž…λ ₯λ˜λŠ” μ •μˆ˜μ™€ 두 μ •μˆ˜μ˜ ν•© λͺ¨λ‘ int의 λ²”μœ„λ₯Ό λ²—μ–΄λ‚©λ‹ˆλ‹€. λ”°λΌμ„œ 두 문제 λͺ¨λ‘ λ³€μˆ˜ μ„ μ–Έ μ‹œ long long int νƒ€μž…μ„ μ‚¬μš©ν•΄μ€˜μ•Ό ν•©λ‹ˆλ‹€. 

 

 

# 1040번

좜λ ₯ μ„€λͺ…: μž…λ ₯된 μ •μˆ˜ λΆ€ν˜Έ λ°”κΎΈκΈ°

주의 사항: λ°μ΄ν„°ν˜•

#include <stdio.h>

int main() {
	int a;
	scanf("%d", &a);
	printf("%d", -a);
	return 0;
}

μž…λ ₯λ˜λŠ” μ •μˆ˜μ˜ λ²”μœ„κ°€ -2147483647 ~ +2147483647μ΄λ―€λ‘œ int νƒ€μž…μ„ μ“°λ©΄ λ©λ‹ˆλ‹€. 좜λ ₯ μ‹œμ—λŠ” '-' μ—°μ‚°μžλ₯Ό 뢙이면 λΆ€ν˜Έκ°€ λ°”λ€Œμ–΄μ„œ 좜λ ₯ λ©λ‹ˆλ‹€.

 

 

# 1041번

좜λ ₯ μ„€λͺ…: μž…λ ₯된 λ¬Έμžμ—μ„œ (ASCII) λ‹€μŒ 문자 κ°’ 좜λ ₯

주의 사항: λ°μ΄ν„°ν˜•

#include <stdio.h>

int main() {
	char a;
	scanf("%c", &a);	//%s도 κ°€λŠ₯
	printf("%c", a+1);
	return 0;
}

μž…λ ₯λ˜λŠ” 문자 1κ°œλŠ” char νƒ€μž…μœΌλ‘œ λ°›κ³ , 좜λ ₯ μ‹œμ—λ„ %cλ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€. μ΄λ•Œ μž…λ ₯받을 λ•ŒλŠ” %c말고 %sλ₯Ό 써도 λ˜μ§€λ§Œ %sλŠ” ν•˜λ‚˜μ˜ 단어(λ¬Έμž₯)을 λ°›λŠ” κ²½μš°μ— 더 μ μ ˆν•©λ‹ˆλ‹€. 

 

 

# 1042번

좜λ ₯ μ„€λͺ…: 2개의 μ •μˆ˜λ₯Ό μž…λ ₯λ°›μ•„ λ‚˜λˆˆ λͺ« 좜λ ₯

주의 사항: λ°μ΄ν„°ν˜•

#include <stdio.h>

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

λ²”μœ„κ°€ int μ•ˆμ΄λ―€λ‘œ %dλ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€. μ΄λ•Œ λ‚˜λˆˆ 'λͺ«'을 좜λ ₯ν•˜λŠ” κ²ƒμ΄λ―€λ‘œ 좜λ ₯ μ‹œμ— κ·ΈλŒ€λ‘œ μ •μˆ˜ν˜• intλ₯Ό μ‚¬μš©ν•˜μ‹œλ©΄ λ©λ‹ˆλ‹€.

 

 

# 1043번

좜λ ₯ μ„€λͺ…: 2개의 μ •μˆ˜λ₯Ό μž…λ ₯λ°›μ•„ λ‚˜λˆˆ λ‚˜λ¨Έμ§€ 좜λ ₯

주의 사항: λ°μ΄ν„°ν˜•

#include <stdio.h>

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

1043번과 μœ μ‚¬ν•˜λ‚˜, 좜λ ₯ μ‹œ μ—°μ‚°μžκ°€ % μž„μ„ μ£Όμ˜ν•΄μ£Όμ„Έμš”. %λŠ” λ‚˜λ¨Έμ§€(modulus) μ—°μ‚°μžμž…λ‹ˆλ‹€.

 

 

# 1044번

좜λ ₯ μ„€λͺ…: μž…λ ₯받은 μ •μˆ˜μ˜ 값을 1만큼 증가 ν›„ 좜λ ₯

주의 사항: μ¦κ°μ—°μ‚°μž

#include <stdio.h>

int main() {
	long long a;
	scanf("%lld", &a);
	printf("%lld", ++a);
	return 0;
}

1044λ²ˆμ—μ„œ κ°€μž₯ μ£Όμ˜ν•΄μ•Όν•  것은 μ¦κ°μ—°μ‚°μžμž…λ‹ˆλ‹€. 1만큼 μ¦κ°€μ‹œν‚€κΈ° μœ„ν•΄μ„œλŠ” λ³€μˆ˜μ˜ μ•ž(μ „μœ„),λ’€(ν›„μœ„)에 ++을 μ‚¬μš©ν•˜λ©΄ λ˜λŠ”λ°, μœ„μΉ˜μ— λ”°λΌμ„œ 좜λ ₯ κ²°κ³Όκ°€ λ‹¬λΌμ§‘λ‹ˆλ‹€. λ§Œμ•½ ν›„μœ„ μ¦κ°μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•œλ‹€λ©΄ (ex: a++) κΈ°μ‘΄ λ³€μˆ˜μ— 있던 값을 좜λ ₯ν•œ 후에 λ³€μˆ˜μ˜ 값을 1만큼 μ¦κ°€μ‹œν‚΅λ‹ˆλ‹€.

예λ₯Ό λ“€μ–΄ λ³€μˆ˜ a에 100κ°€ μž…λ ₯λ˜μ—ˆλ‹€κ³  ν•©μ‹œλ‹€. κ·Έλ ‡λ‹€λ©΄ μœ„ μ½”λ“œμ—μ„œλŠ” 100이 λ¨Όμ € 좜λ ₯되고, κ·Έ λ‹€μŒ a의 값이 101이 λ©λ‹ˆλ‹€. μ΄λ•Œ, printf("%lld", ++a)와 return 0 사이에 printf("%d", a)λ₯Ό μΆ”κ°€ν•œλ‹€λ©΄, λ‘λ²ˆμ§Έ printf의 좜λ ₯ κ²°κ³ΌλŠ” 101이 λ©λ‹ˆλ‹€. 

1044λ²ˆμ—μ„œλŠ” μ¦κ°€λœ 값을 ν™•μΈν•˜κ³  싢은 κ²ƒμ΄λ―€λ‘œ μ „μœ„ 증감 μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€. (ex: ++a)

 

 

# 1045번

좜λ ₯ μ„€λͺ…: 2개의 μ •μˆ˜μ˜ ν•©, μ°¨, λͺ«, λ‚˜λ¨Έμ§€, λ‚˜λˆˆ 값을 좜λ ₯

주의 사항: λ°μ΄ν„°ν˜•

#include <stdio.h>

int main() {
	long long int a, b;
	scanf("%lld %lld", &a, &b);
	printf("%lld\n", a+b);
	printf("%lld\n", a-b);
	printf("%lld\n", a*b);
	printf("%lld\n", a/b);
	printf("%lld\n", a%b);
	printf("%.2lf", (float) a/b);
	return 0;
}

μœ„μ—μ„œ μ‹€μŠ΅ν•œ λ‚΄μš©λ“€μ„ ν•œλ²ˆμ— 좜λ ₯ν•˜λŠ” μ˜ˆμ œμž…λ‹ˆλ‹€. μ½”λ“œμ—…μ˜ μž…λ ₯ μ˜ˆμ‹œλ₯Ό λ³΄λ‹ˆ intλ₯Ό 써도 λ˜μ§€λ§Œ, a와 bκ°€ μ΅œλŒ€κ°’μ΄ μž…λ ₯λœλ‹€λŠ” κ°€μ •ν•˜μ— long long int νƒ€μž…μ„ μ‚¬μš©ν•˜μ˜€μŠ΅λ‹ˆλ‹€. 

μ—¬κΈ°μ„œ λ§ˆμ§€λ§‰ printf의 (float)은 ν˜•λ³€ν™˜μž…λ‹ˆλ‹€. μ •μˆ˜ / μ •μˆ˜ 일 λ•Œ 값이 μ‹€μˆ˜ν˜•μ΄ λ‚˜μ˜¬ μˆ˜κ°€ μžˆλŠ”λ°, μ΄λ•Œ μ œλŒ€λ‘œ 된 좜λ ₯을 ν•˜κΈ° μœ„ν•΄ κ°’ 쀑 ν•˜λ‚˜λ₯Ό μ‹€μˆ˜ν˜•(float)으둜 λ³€ν™˜ν•©λ‹ˆλ‹€. 이처럼 ν”„λ‘œκ·Έλž˜λ¨Έκ°€ 직접 μžλ£Œν˜•μ„ λ°”κΎΈλŠ” μž‘μ—…μ„ λͺ…μ‹œμ  ν˜•λ³€ν™˜(explicit type conversion)이라고 ν•˜λ©°, 이후 μ‹€μˆ˜ / μ •μˆ˜ 일 λ•Œ μžλ™μœΌλ‘œ μžλ£Œν˜•μ˜ 크기가 큰 μͺ½μœΌλ‘œ λ³€ν™˜λ˜λŠ” 것을 μ•”μ‹œμ  ν˜•λ³€ν™˜(Implicit type conversion) μ΄λΌκ³  ν•©λ‹ˆλ‹€.

λ¬Όλ‘  두 개의 λ³€μˆ˜ λͺ¨λ‘ float ν˜•μœΌλ‘œ λ°”κΏ”μ€˜λ„ μƒκ΄€μ—†μŠ΅λ‹ˆλ‹€. (μ‹€μˆ˜/μ‹€μˆ˜)

 

 

# 1046번

좜λ ₯ μ„€λͺ…: 3개의 μ •μˆ˜μ˜ ν•©κ³Ό 평균 좜λ ₯

주의 사항: λ°μ΄ν„°ν˜•

#include <stdio.h>

int main() {
	long long int a, b, c;
	scanf("%lld %lld %lld", &a, &b, &c);
	printf("%lld\n", a+b+c);
	printf("%.1lf", (float)(a+b+c)/3);
	return 0;
}

평균을 좜λ ₯ν•  λ•ŒλŠ” 1045λ²ˆμ—μ„œ μ‹€μŠ΅ν•œ ν˜•λ³€ν™˜μ„ μ‚¬μš©ν•©λ‹ˆλ‹€.