티스토리 뷰
오늘은 배열에 조금 더 어려운 코스를 해보려 한다.
이 문제들은 해본 결과 실제로 프로그래머스 등에서도 연습문제로 출제가 된 예시문과 많이 일치함을 알 수 있다.
에라토스테네스의 체
그리스의 수학자이자 지리학자인 에라토스테네스가 고안한 소수를 찾는 방법은 다음과 같다.
1) 시작수를 2로 한다.
시작은 2로 시작하고 자연수를 쭈욱 나열한다.
2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | |
11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
2) 2를 제외한 2의 배수에 해당하는 수를 지운다.
소수는 1과 자기자신을 가지기 때문에 1, 2를 가지고 있는 소수 2를 제외한 2의 배수를 지운다.
2 | 3 | 5 | 7 | 9 | |||||
11 | 13 | 15 | 17 | 19 |
(와 이런 생각 한번도 해보지 못하였다...)
3) 시작수를 3으로 한다.
2 | 3 | 5 | 7 | 9 | |||||
11 | 13 | 15 | 17 | 19 |
4) 3을 제외한 3의 배수에 해당하는 수를 지운다.
2 | 3 | 5 | 7 | ||||||
11 | 13 | 17 | 19 |
여기서 3의 배수중 남아있는 9와 15를 지우면 된다.
5) 이런식으로 5의 배수 7의 배수 11의 배수 등을 지워주면 된다.
과제 31. 10진수에서 8진수로 변환하는 스크립트
사실 진수변환은 고등학교 이후로는 잘 쓰이지 않지만
개발을 하는 개발자들에게는 2진수의 개념 정도는 어느 정도 있다.
아무래도 컴퓨터가 1과 0을 이루고 있는 코드기 때문인데...
사실 8진수 16진수가 어디에 쓰이는지는 잘 모르지만, 개념과 변환하는 간단하게는 알아두면 좋을 것 같다.
<html>
<body>
<h2>과제31 10진수에서 8진수로 바꾸기</h2>
<script>
let n = parseInt(prompt("10진수를 입력하세요.", 0));
let i = 0;
let a = [];
while (n != 0) {
a[i] = n % 8;
i += 1;
n = Math.floor(n / 8);
}
for (j = i - 1; j >= 0; --j) {
document.write(`${a[j]} `);
}
</script>
</body>
</html>
생각보다 코드로 작성할때는 하나하나 다 생각을 해줘야 하는 번거로움도 있지만
이로 인해 생각하는 범위가 좀 다양해지지 않을까 하는 생각이 든다.
과제 32. 8진수에서 10진수로 바꾸기
다음은 과제31에서 한 것을 역순으로 해보는 방법이다.
수학은 규칙이 있으니 규칙을 찾으면 쉽게 할 수 있다.
(하지만 실제로는 규칙을 알아도 이 것을 어떻게 만들어야 할지도 어려울 수 있으니 천천히 생각한다.)
<html>
<head> </head>
<body>
<h2>과제32 8진수에서 10진수로 바꾸기</h2>
<script>
let b = [3, 4, 5, 7, 4]; // 임의의 8진수 배열을 넣기
let n = 0;
for (var i = 0; i <= 4; i++) {
n = n + b[i] * Math.pow(8, 4 - i);
}
document.write(n);
</script>
</body>
</html>
여기서는 임의의 배열 b를 받아둔 상태에서 역순으로 곱해주는 방법을 적용해보았다.
Math.pow는 거듭제곱을 할 때 쓰는 방법이다.
(이러한 숫자관련 코드는 어디서 쓸 수 있을까..?? 토이플젝에 활용하고 싶어도 아직은 잘 모르겠다.)
생각보다 처음 코딩테스트를 내가 우습게 본 것이 매우 한심하게 느껴졌다.
그냥 머리 조금만 굴려보면 되겠지라는 생각으로 시도해보았다가, 참패를 느꼈었다.
그래도 다행인건 지인 추천을 통해 차근차근 단계를 밟고 하다 보니 생각보다 어려움을 조금을 덜 수 있었다.
|
앞으로 점점 더 난이도 있는 코드가 나올텐데 걱정 반 기대 반으로 오늘도 마무리한다.
'Front-End > Javascript' 카테고리의 다른 글
순서도로 배우는 자바스크립트 6 (0) | 2020.12.16 |
---|---|
순서도로 배우는 자바스크립트 5 (0) | 2020.12.13 |
순서도로 배우는 자바스크립트 3 (0) | 2020.12.11 |
순서도로 배우는 자바스크립트 2 (2) | 2020.12.10 |
순서도로 배우는 자바스크립트 1 (0) | 2020.12.06 |
- Total
- Today
- Yesterday
- 코딩테스트
- 파이썬
- github
- 함수
- Visual Studio Code
- Switch
- 리액트
- 프로그래머스
- react
- javascript
- 뷰
- array
- 배열
- redux
- java
- node-sass
- 리액트 썸네일
- 자바스크립트
- programmers
- mongodb
- 재공부
- 노드
- node
- 리덕스
- Coding Test
- CSS
- 자바
- 리액트 유튜브
- Git
- node.js
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |