Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[자동차 경주] 한유진 미션 해결했습니다 #2

Open
wants to merge 9 commits into
base: main
Choose a base branch
from

Conversation

cho4u4o
Copy link

@cho4u4o cho4u4o commented Sep 7, 2024

Code Flow

image

About Variables in this code

배열 names 경주에 참가하는 자동차들의 이름이 저장된 배열
변수(int) times 경주가 진행될 횟수가 저장된 변수
배열 race names 배열에서 각 자동차들의 인덱스에 대응하는 인덱스에 자동차의 주행 정보를 저장하는 배열
변수(int) max 자동차들의 주행 정보 중 가장 큰 주행 수가 저장된 변수

Functional Descriptions

1️⃣ 입력 단계

  • JavaScript는 입력을 받는 동시에 처리가 불가능하므로, 비동기적인 처리가 필요하다.
  • 자동차 이름을 받는 함수 getCarname 와 경주를 시도할 횟수 getTimes 두 함수를 async를 사용하여 play 함수 외부에 선언해 주었다.
  • 그리고, play 함수 내에서 각각 namestimes 변수에 비동기 함수의 리턴값을 할당해주었다.

2️⃣ 경주 실행 단계

  • 경주의 경과를 확인하고, 출력하고, 최댓값을 구하는 것을 한 반복문 안에서 해결하는 것을 목표로 하였다.
  • 반복문의 실행 전, racemax를 초기화한다.
  • race 배열을 초기화할 때에는 fill()메서드를 사용하였다.
  • 먼저 경주가 몇 번 실행될 지 저장되어 있는 변수 times 만큼 반복문을 동작시킨다.
  • 반복문 내부에서는 forEach 메서드를 통해 자동차 이름과 인덱스에 접근한다.
forEach 메서드 내부
1 접근한 인덱스를 사용해 `race` 배열에서 이름에 해당하는 인덱스 요솟값에 접근한다.
2 랜덤 연산을 수행하고, 4 이상의 값이 나오면 요솟값을 + 1 한다. (삼항 연산자를 사용해 구현한다.)
3 `max`보다 요솟값이 클 경우, `max`에 요솟값을 저장함으로서 최종적으로 가장 큰 요솟값이 `max`에 저장될 수 있게 한다. (삼항 연산자를 사용해 구현한다.)
4 차의 이름과 요솟값만큼 반복되는 `-`를 출력한다. (이때 `-`의 출력은 `repeat()` 메서드를 사용한다.)

3️⃣ 우승자 선정, 출력

  • filter 메서드를 사용해 race 의 요솟값이 max 보다 크거나 같은 name을 선별한다.
  • name 이 여러 개 일 경우를 대비하여 join() 메서드를 통해 출력 형식을 형성한다.
  • 우승자를 출력한다.

References

커스텀 에러
타입 확인하기 : int

@cho4u4o cho4u4o changed the title [자동차 경주] 한유진 문제해결 [자동차 경주] 한유진 미션 해결했습니다 Sep 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant