1. 구구단
1. 구구단 출력하기
이렇게 출력만 하는 건 의미가 크지 않다고 생각해서 값을 배열이나 객체에 저장하는 코드를 짜보았다.
2. 배열에 저장하기
- push() 메서드를 통해서 배열 arr에 값을 넣어주었다.
3. 객체에 저장하기
- 계산된 프로퍼티 이름으로 프로퍼티 키를 동적 생산 하여 담아주었다.
1. for문 안에서 객체를 생성
- 객체에 값을 담는 건 성공했지만, 하나의 객체에 담기지 않고 수십개의 객체가 만들어졌다.
- for문 안에서 객체 obj를 생성했기 때문에 for문 바깥에서는 접근할 수 없다.
2. for문 밖에서 객체를 생성
- 하나의 객체에 모든 프로퍼티가 담겼다.
- for문 바깥에서 객체 obj를 생성했기 때문에 for문 바깥에서도 접근할 수 있다.
2. 숫자 카운팅 하기
Q. 1부터 10,000까지 8이라는 숫자가 총 몇번 나올까? 8이 포함되어 있는 숫자의 갯수를 카운팅 하는 것이 아니라, 8이라는 숫자를 모두 카운팅 해야 한다.
(※ 예를들어 8808은 3, 8888은 4로 카운팅 해야 한다.)
1. 내가 푼 방법
- i를 string으로 타입변환하여 text에 할당하였다.
- text의 길이만큼 반복문을 돌면서 '8'일 때만 result에 1씩 추가되도록 하였다.
- 변수 하나하나를 반복문으로 돌리는 거라 좋은 코드 같지는 않아 보인다.
2. 강사님 방법
- 모든 i를 string 타입으로 더하여서 text에 담았다.
- 그 후 변수 text에서 변수text의 길이만큼 8을 찾는 반복문을 만들었다.
최댓값/최솟값 구하기
1. if문
- 배열 안에서 반복문을 돌면서, 기존에 temp에 할당된 값보다 큰 경우에만 재할당 하여 가장 큰 값을 찾는다.
2. 삼항 조건 연산자
- if문 대신 삼항 조건 연사자를 이용해 보았다.
두 글자씩 자르기
- 문자열은 유사 배열이므로 인덱스를 이용해서 각 문자에 접근할 수 있다.
가장 거리가 짧은 숫자쌍 출력하기
Q. 1차원의 점들이 주어졌을 때, 그 중 가장 거리가 짧은 것의 쌍을 출력하는 함수를 작성하시오. (단 점들의 배열은 모두 정렬되어있다고 가정한다.)
예를들어 S={1, 3, 4, 8, 13, 17, 20} 이 주어졌다면, 결과값은 (3, 4)가 될 것이다.
- 배열이 모두 정렬되어 있다고 가정하였기 때문에, 배열에서 옆 요소와의 거리만 따져주면 된다.
- 반복문을 돌면서, i+1번째와 i번째 요소의 거리를 계산하고 이전 값과 비교하여, 작은 값을 계속 재할당 해주었다.
- 필요한 값은 최소 거리일 때의 숫자쌍이기 때문에, 숫자의 인덱스를 result에 저장한다.