CS50_코칭스터디 팀미션(3주차)
네이버 부스트코스에서 코칭스터디에 참여하며 제대로 풀지 못했던 팀미션을 다시 풀어보자!
문제 1 - 학점 계산 프로그램
#include <stdio.h>
#include <cs50.h>
int userScore = 0;
void getScore();
void printGrade();
const char* grade[9] = {"A+", "A", "B+", "B", "C+", "C", "D+", "D", "F"};
const int score[9] = {95, 90, 85, 80, 75, 70, 65, 60, 0};
int main () {
printf("학점 프로그램\n 종료를 원하면 999를 입력");
printf("[학점 테이블]\n");
printf("학점: ");
for (int i = 0; i < 9; i++) {
printf("%s ", grade[i]);
}
printf("\n점수: ");
for (int i = 0; i < 9; i++) {
printf("%d ", score[i]);
}
getScore(userScore);
if (userScore == 999) {
printf("학점 프로그램을 종료합니다.\n");
return 0;
} else if (userScore <= 0 || userScore >= 100) {
printf("성적을 올바르게 입력하세요. 범위는 0 ~ 100입니다.\n");
} else {
printGrade();
}
}
void getScore(){
printf("\n성적을 입력하세요 범위는 0 ~ 100입니다.\n");
scanf("%d", &userScore);
}
void printGrade(){
for (int i = 0; i < 9; i++) {
if (userScore >= score[i]) {
printf("학점은 %s입니다", grade[i]);
break;
}
}
}
느낀 점: 너무너무 뿌듯하고 재밌게 푼 문제다! 미션이 나왔을 당시에는 for문 활용이니... 배열이니... 제대로 생각도 못 했는데, 이번에는 이렇게 풀어야겠다 하고 하나씩 돌려가면서 에러나는 부분 수정하고 했더니 생각보다 빨리 구현해낼 수 있었다!
미션 2 - 빠진 숫자 k찾기
#include <stdio.h>
#define SIZE 500000
int main(int argc, char *argv[]) {
int n;
scanf("%d", &n);
// 1 부터 N 의 숫자중 K 가 빠진 배열
int partArr[SIZE];
int lengthOfPartArr = n - 1;
for (int i = 0; i < lengthOfPartArr; i++) {
scanf("%d", &partArr[i]);
}
int partSum = 0;
for (int i = 0; i < lengthOfPartArr; i++) {
partSum += partArr[i];
}
int totalSum = n * (n + 1) / 2;
int k = totalSum - partSum;
printf("K = %d\n", k);
return 0;
}
미션 3 - Queue 만들기
#include <stdio.h>
#define MAX 50
void insert();
void delete();
void display();
int queue_array[MAX];
int rear = - 1;
int front = - 1;
int main() {
int choice;
while (1) {
printf("1.Insert element to queue \n");
printf("2.Delete element from queue \n");
printf("3.Display all elements of queue \n");
printf("4.Quit \n");
printf("Enter your choice : ");
scanf("%d", &choice);
switch (choice) {
case 1:
insert();
break;
case 2:
delete();
break;
case 3:
display();
break;
case 4:
return 1;
default:
printf("Wrong choice \n");
}
}
}
void insert()
{
int add_item;
if (rear == MAX - 1) {
printf("Queue Overflow \n");
} else {
if (front == - 1) {
front = 0;
}
printf("Inset the element in queue : ");
scanf("%d", &add_item);
rear = rear + 1;
queue_array[rear] = add_item;
}
}
void delete() {
if (front == - 1 || front > rear) {
printf("Queue Underflow \n");
return ;
} else {
printf("Element deleted from queue is : %d\n", queue_array[front]);
front = front + 1;
}
}
void display() {
int i;
if (front == - 1) {
printf("Queue is empty \n");
} else {
printf("Queue is : \n");
for (i = front; i <= rear; i++) {
printf("%d ", queue_array[i]);
}
printf("\n");
}
}
느낀 점: 위 두 문제는 열심히 구글링해도 이해하지 못해서 결국 우수답안을 보고 일단 문제를 이해하는 시간을 가지기로 했다. 이해하고 나서 자바스크립트로 스스로 구현해봐야겠다.
Author And Source
이 문제에 관하여(CS50_코칭스터디 팀미션(3주차)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@koohyeon/CS50코칭스터디-팀미션3주차-a41jcmzl저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)