CS50_코칭스터디 팀미션(4주차)

Koohyeon·2021년 4월 15일
0

CS50

목록 보기
9/9
post-thumbnail
post-custom-banner

네이버 부스트코스에서 코칭스터디에 참여하며 제대로 풀지 못했던 팀미션을 다시 풀어봐야겠다! 6주차까지 다 풀고 나서는 자바스크립트로 다시 풀어보자!

문제 1 - 숫자 애너그램 찾기(숫자는 배열로 선언)

#include <stdio.h>

int numOne[5] = { 1, 2, 3, 4, 5 };
int numTwo[5] = { 3, 1, 2, 5, 4 };
int comNum = 0;
int temp;

void bubbleSort(int number[], int length);
void compareNumber(int a[], int b[], int length);

int main() {
    bubbleSort(numOne, 5);
    bubbleSort(numTwo, 5);

    compareNumber(numOne, numTwo, 5);

    if (comNum == 5) {
        printf("True!");
    } else {
        printf("False!");
    }

}

void bubbleSort(int number[], int length) {
      for (int i=0; i < 5; i++) {
         for (int j=0; j < 5 - i - 1; j++ ) {
             if (number[j] > number[j+1]) {
              temp = number[j];
              number[j] = number[j+1];
             number[j+1] = temp;
             }
        }
    }
}

void compareNumber(int a[], int b[], int length) {
      for (int i=0; i < length; i++) {
             if (a[i] == b[i]) {
                 comNum++;
             } 
          }
}

느낀점: 다 쓰고 날라가서 절망했었는데, 10분 재면서 다시 작성했더니 더 코드가 깔금해진 느낌이다. 일단 내 생각대로 작성하고 에러나는 부분을 구글링하며 고치는 방식으로 풀고 있는데 이게 그 유명한 TDD인가..? 아직 그 개념을 제대로 이해하지 못했지만, 어쨌든 이 방식으로 푸니까 훨씬 빠르게 푼다!

문제 2 - 친구들과 최단거리의 집 구하기

#include <stdio.h>

int friends[5] = { 1, 2, 3, 4, 5 };
int length = sizeof(friends)/sizeof(int);
int temp;
int me;

int main() {
    for (int i = 0; i < length - 2; i++) {
        if (friends[i] > friends[i+1]) {
            temp = friends[i];
            friends[i] = friends[i+1];
            friends[i+1] = temp;
        }
    }
    if (length % 2 == 0) {
        me = friends[length/2 - 1];
    } else {
        me = friends[(length + 1) / 2 - 1];
    }

    printf("내 집의 위치는 %d이야", me);
}

느낀점: 정렬을 했으니 중앙값은 쉽게 구할 수 있는 조건의 문제였는데, 거기서 공식을 이용하려다가 계속 에러가 났다. 좀 더 차분히 문제를 적어가며 풀어보자.

post-custom-banner

0개의 댓글