TIL

KPT 회고 (4MEN Mini Project)와 알고리즘(두 수의 나눗셈) 오답 노트

oceanflow 2024. 12. 30. 20:44

keep

  1. 역할 분담, 꾸준한 소통
  2. 팀원들의 적극적인 참여
  3. 문제를 해결하기 위한 끈기와 노력
  4. 의견을 듣고 의논하여 방향성 결정

problem

  1. 문제: 코드 병합 문제 원인: Git 커밋 규칙 등 브랜치 전략에 대한 이해 및 경험 부족
  2. 분명히 코드를 정확히 작성했다고 생각했지만 의도한대로 결과가 나오지 않는 경우가 많음
  3. 다소 타인이 작성한 코드를 한눈에 이해하기 쉽지 않았던 경우가 있음

try

  1. 깃허브를 이용하여 헙업, 강의에서 배운 것을 모두가 직접 짜보면서 이해하기
  2. 문제를 마주했을 때 스스로 계속 생각하며 해결방안을 모색하고 필요하면 팀원들에게 도움을 구하기
  3. 완벽하게 해내지 못하더라도 코딩을 해보며 도전해보기
  4. 기능들을 중요도를 매겨 우선순위가 높은 기능 먼저 구현하기
  5. 어느 의도로 작성된 코드인지 타인이 봐도 알기 쉽도록 주석 달아보기

feel

  1. 단순한 기능 구현 보다는 어떤 의도로 이 코드를 작성했는지 더 개선할 여지가 없는지를 꾸준히 생각해야 다음 단계로 나아갈 수 있다는 느낌이 들었다. 에러가 발생했을 때 단순히 해결 하려는 것에 초점 두기보다 기록하고 앞으로 똑같은 에러가 안나게 하려면 어떻게 해야하는지에 대해서 깊이있게 생각하게 되었습니다.
  2. 웹개발의 원리에 대해 배울 수 있었고 프로젝트를 진행하는데에 있어 협업의 중요성을 깨달았다.
  3. 협업하는 데에 있어서 Git Hub의 중요성과 서로 코딩을 할 때에 규칙, 서로의 업무 구분이 명확하게 있어야 사소한 문제가 큰 문제로 번지지 않는다는 것을 느꼈다.

 

알고리즘


두 수의 나눗셈

문제 : 정수 num1과 num2가 매개변수로 주어질 때, num1을 num2로 나눈 값에 1,000을 곱한 후 정수 부분을 return 하도록 soltuion 함수를 완성해주세요.

입출력 예 #1

num1이 3, num2가 2이므로 3 / 2 = 1.5에 1,000을 곱하면 1500이 됩니다.

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



여기서 나눗셈을 하여 소수점으로 받고 싶다면 double 타입의 answer를 지정하고
나눗셈을 할때에도 num1, num2 하나라도 실수형으로 바꾸어주어 계산해야 한다
(double)은 double 타입으로 명시적 형변환한 것이다.
그리고 그대로 실행하면 오류가 나게 된다. 나는 여기서 오류가 났다.
그 이유는 메서드 반환 타입이 'int'이기 때문이다. 
public int solution(...)
그렇기 때문에 

return (int)answer;
이렇게 형변환 해주어야 한다.

아니면 메서드 반환 타입 자체를 double로 변경해도 된다. 그럼 solution 메서드는 실수형만 반환할 것이다.