오늘의 계획

1. 마지막 수정 및 점검

2. 발표

3. 개인 알고리즘 공부

 

  • 발표

전날에 발표 대본은 써놨지만 발표에 대한 경험이 거의 없고 열심히 팀원들과 준비한 게임을 내 발표로 망칠까봐 걱정이 많이 됐다. 하지만 이때 아니면 언제 발표를 연습해보겠어! 라는 생각과 팀원분들의 격려로 ppt자료와 대본을 한 번 더 체크했다.

미니프로젝트이지만 처음으로 팀원들과 협동하며 하나의 게임을 완성한 경험은 아쉬우면서도 뿌듯했다. 시간이 좀 더 있었다면 구현하면 좋았을텐데 싶은 부분과 발표 때 긴장해서 말을 제대로 못한게 아쉽기도 했지만 새로운 경험이라 재밌었다.

 

  • 알고리즘 문제 풀이

C# 코딩테스트 알고리즘 코드타카 문제를 풀던 중, 두 수의 나눗셈 부분에서 Convert 함수와 (double), (int) 등의 형변환 방식의 차이점이 무엇일까 궁금증이 생겼다. Convert 함수는 String처럼 숫자형이 아닌 자료형도 변환시켜줄 수 있지만 (double), (int) 등의 형변환은 숫자형끼리만 변환시킬 수 있었다.

 

나의 첫 코드는 이랬는데

public class Solution {
    public int solution(int num1, int num2) {
        double answer = Convert.ToDouble(num1 / num2 * 1000);
        return Convert.ToInt32(answer);
    }
}

 

int형의 num1과 num2가 계산되어 정수로 반환되기 때문에 소수점을 반환할 수 없었다.

 

고로 이렇게 num1을 double형으로 변환시켜서 int형과 계산해도 더 상위의 형식인 double형으로 나오도록 했다.

public class Solution {
    public int solution(int num1, int num2) {
        double answer = Convert.ToDouble(num1) / num2 * 1000;
        return Convert.ToInt32(answer);
    }
}
public class Solution {
    public int solution(int num1, int num2) {
        double answer = (double)num1 / num2 * 1000;
        return (int)answer;
    }
}

 

 

+ C#은 파이썬과 달리 중첩 비교연산자 사용이 안된다는 사실을 알게 되었다.

틀린 예)

if (0 < angle < 90)

 

올바른 예)

if (0 < angle && angle < 90)

 

 

+ Recent posts