2024-12-18 TIL

알고리즘 문제

유클리드 호제법과 mod라는 개념을 몰라서 정보를 여기저기서 찾아봤지만 크게 어려운 개념은 아니라 금방 이해할 수 있었습니다.
브루트 포스와 유클리드 호제법을 사용했을 때 성능 차이가 생각보다 크게나서 알고리즘을 선택 할 때 성능을 고려하는 것이 크게 중요하다는 점을 다시 느꼈습니다.
프로그래머스 분수의 덧셈

블루프린트 기능 구현 및 발표

스파르타 캠프 중 발표하는 시간에 저와 같은 조원들이 수행한 과제들에 대해 발표하는 시간을 가졌습니다.

일단 수행한 과제들입니다.

과제 총알 버그 수정

총알 장전 버그 수정

피격 기능

회복 기능

1번과 2번 과제는 많은 사람들이 알고리즘을 거의 비슷하게 했습니다.
생각해보면 그렇게 크게 차이가 날 정도로 구현하진 않을 것 같습니다.

구구단 만들기

3번 구구단의 경우 저는 한번 입력시 1개 단만 출력되고 누를 때마다 다음 단이 출력되도록 구현했습니다.
다른 사람들은 while문을 1개만 사용하거나, 한번에 모든 구구단이 출력되도록 구현한거에서 차이점이 있습니다.

가위바위보

가위바위보

4번은 보통 if문을 중첩해서 사용하거나 switch문을 사용해서 각 케이스에 대해 출력을 지정했는데,
저는 어느정도 알고리즘을 고민해서 출력값에 고민을 좀 해봤습니다.

다음과 같은 규칙을 기준으로 알고리즘을 짰습니다.

묵은 찌를 이기고,
찌는 빠를 이기고,
빠는 묵을 이깁니다.

묵 == 0
찌 == 1
빠 == 2

이 경우 각 묵,찌,빠에서 1씩 값이 다르다는 규칙이 있고, 1씩 값이 증가한다면 이긴다는 규칙이 됩니다.
이 규칙으로 승, 패, 무를 판별했습니다.

빠에 1을 더하면 3이 되버려 연산에 버그가 생기므로, 나머지 연산자를 사용했습니다.
나머지 연산자를 사용하지 않고 ==연산자를 사용해서 3이라면 -3을 해주어 0으로 만들어준다면 나머지 연산자와 같습니다.
하지만 노드를 더 많이 사용하고 효율이 좋지 않으므로 나머지 연산자를 사용했습니다.

그리고 해당 과제를 수행하면서 출력 색상에 구분을 줬는데, 시인성을 위해서 색상에 구분을 줬습니다.

출력의 시간을 변경하기도 했는데, 출력 시간이 너무 짧아서 변경했습니다.

발표중 블루프린트에서 주석을 다는 코멘트와 경유노드에 대한 질문이 있어서 잘 대답을 했습니다.

최근에 알고리즘 문제를 많이 풀어보면서 공부를 하다보니 다른 분들이 가위바위보 과제를 해결하는 과정과 좀 달랐던 것 같습니다.
확실히 공부를 하며 응용하는 능력이 향상된 것 같아 기분이 좋습니다.

또 과제를 수행하고 발표하는 것이 많이 긴장되기도 했지만, 질문을 받거나 피드백을 받는게 즐겁고 성장하는 느낌이 들어 굉장히 만족스럽습니다.
앞으로도 자주 발표하고싶다는 생각이 듭니다.

Date:     Updated:

카테고리:

태그:

TIL 카테고리 내 다른 글 보러가기

댓글남기기