728x90

https://www.acmicpc.net/problem/15651

😢 중복 순열 문제
N과 M (1), (2)를 이해했다면 쉽게 풀 수 있는 문제

😊 모든 수를 뽑아내므로, 방문한 것을 체크할 필요가 없다.
숫자 1개씩 모두 뽑아내는 코드를 작성하면 된다.

📢 Node.js(JavaScript)로 알고리즘을 풀 때, console.log()가 '시간 초과'에 많은 영향을 준다.
수가 큰 알고리즘 문제를 풀 때는, str 변수를 만들어 모든 결과값을 적절하게 저장해놓고
마지막에 console.log() 단 한 번으로 해결하는 것이 좋다. 아니 그렇게 해야 한다.

728x90

https://www.acmicpc.net/problem/15650

😢 순열인지 조합인지 문제가 애매하지만, 결과를 보면 조합이다.
Keyword: '고른 수열은 오름차순이어야 한다'

😊 이 문제 역시 N과 M (1)과 마찬가지로 DFS로 해결이 가능하다.

N과 M (1)는 재귀를 위한 for loop에서 index를 항상 맨 처음부터 다시 돌았다면(모든 경우의 수를 위해),
이 문제에서는 지난 숫자는 제외하고 for loop을 진행한다(중복을 피하기 위해)

728x90

https://www.acmicpc.net/problem/15649

😢 오랜만에 보는 순열과 조합

😊 DFS(Depth First Search)를 이용해 풀어낼 수 있다.

* Base case

cnt === M일 때, 출력하고 return해준다(입력 받은 길이만큼)

* Recursion

for loop을 열고 재귀를 진행해준다.
방문을 했다면 true, output에 해당 값(i+1) push 그리고 그 다음 숫자를 진행하기 위헤 dfs(cnt+1)를 진행해준다.
depth의 끝까지 진행하기 위해 마지막 값을 pop()하고 해당 방문은 false로 변경해준다.

3. print() function을 이용해 원하는 값의 길이만큼 값을 구할 때마다 출력해준다.

위와 같은 재귀를 이용해 위 문제를 해결할 수 있다. 조금 세세하게 이해하기 위해서는 debugging 추천한다.

📢 지금까지는 대회를 생각하고 C++를 이용해 알고리즘을 푼 것이 아니기 때문에 시간에 그렇게 신경을 쓰지 않았다.
정확한 로직을 이용해 효율적으로 문제를 해결할 수 있으면 된다고 생각했기 때문이다.
하지만 우연히 console.log() 방법을 바꿔보았더니 시간 단축이 엄청나졌다. 앞으로는 console.log를 최소화 해야겠다.
시간 단축에 엄청난 도움이 된다. 성능을 위해서 사소한 하나까지 신경쓰자.

결론은 Solution 2를 추천한다. 출력 방법만 조금 바꿨을 뿐이다.

이해에 도움이 됐던 post 👉 https://yabmoons.tistory.com/115

728x90

✨ String의 인덱스를 지정하는 또 다른 방법

💻Example Code

실행 결과

🧨 물론 직접 지정하는 것도 가능하지만, 조금 더 graceful 표현이 필요할 때, 또는 목적에 맞게 사용 가능하다.
프로젝트는 보통 다수의 인원이 참여하게 되는데, 내 코드를 다른 사람도 이해할 수 있어야 한다.
따라서, 내가 작성한 코드의 목적을 정확히 표현하고 싶을 때 사용할 수 있다.

👉 자세한 내용https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/charAt

 

String.prototype.charAt()

The String object's charAt() method returns a new string consisting of the single UTF-16 code unit located at the specified offset into the string.

developer.mozilla.org

 

'JavaScript > Built-in Method etc.' 카테고리의 다른 글

Array.prototype.find()  (0) 2020.06.09
Array.prototype.splice()  (2) 2020.05.15
Set (Object)  (0) 2020.02.20
String.prototype.localeCompare()  (0) 2020.02.20
Math.round()  (0) 2020.02.16
728x90

https://www.acmicpc.net/problem/10814

😢 될 것 같은데, 잘 안풀려서 시간이 좀 걸린 문제
name list를 따로 뽑아놓고 indexOf()로 sort()하면 될 것 같은데 잘 안 됐다. 나중에 다시 시도해보자.

😊
Solution 1)

Array를 최대 나이까지 선언한 후에, 각 나이 index마다 가입한 순서대로(입력 값 순서대로) push 해주면 된다.
가장 간단하며, 가장 빠른 해결 방법이다.

Solution 2)

for loop을 이용해 index를 함께 넣어주고, 나이가 같다면 index를 비교하여 sort()로 해결하는 방법.
아이디어도 좋고, 간편하다. 하지만, 시간이 Solution 1)보다 2배가량 차이난다.

728x90

Click! 👉 https://dasolpark.github.io/Dasol_React_Video_Search_With_YouTube_API/

 

Video Search With YouTube API

 

dasolpark.github.io

Github 👉 https://github.com/DasolPark/Dasol_React_Video_Search_With_YouTube_API

 

DasolPark/Dasol_React_Video_Search_With_YouTube_API

ReactJS with YouTube API. Contribute to DasolPark/Dasol_React_Video_Search_With_YouTube_API development by creating an account on GitHub.

github.com

🔍 YouTube API를 이용해 YouTube 영상을 검색하는 간단한 웹 앱 사이드 프로젝트입니다.

✨ Functional? or Class? Component, Communicating Child to Parent,  Deeply Nested Callbacks, Event,
axios를 이용하여 API 다루기 등 개념을 익히기에 좋습니다.
앞서 만들었던 Unsplash 프로젝트와 중복되는 개념이 많아 React 기초를 확고히 다지기 좋은 프로젝트입니다.

영상 리스트는 최대 30개까지 출력되며,
grid를 활용하여 모바일에서도 문제 없이 사용 가능하도록 디자인하였습니다.

랜딩 페이지
영상 리스트
전체 페이지

 

728x90

✨ 유일한(unique)값을 얻고 싶을 때 사용할 수 있는 Built-in Object

💻Example Code

실행 결과

🧨 중복된 값이 여러 개 존재할 때 유용하게 사용 가능하다.

👉 자세한 내용https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set

'JavaScript > Built-in Method etc.' 카테고리의 다른 글

Array.prototype.splice()  (2) 2020.05.15
String.prototype.charAt()  (0) 2020.02.22
String.prototype.localeCompare()  (0) 2020.02.20
Math.round()  (0) 2020.02.16
Math.abs()  (0) 2020.01.28
728x90

✨ 문자의 정렬 순서를 비교를 통해 알아낼 수 있는 helper method

💻Example Code

 

 

실행 결과

🧨
의 비교 문자가의 비교 문자보다 정렬 순서가 앞이라면 -1
의 비교 문자가 의 비교 문자보다 정렬 순서가 같다면 0
의 비교 문자가 의 비교 문자보다 정렬 순서가 뒤라면 1
이 출력되는 것을 확인할 수 있다.

👉 자세한 내용은 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/localeCompare

 

String.prototype.localeCompare()

The localeCompare() method returns a number indicating whether a reference string comes before or after or is the same as the given string in sort order.

developer.mozilla.org

 

'JavaScript > Built-in Method etc.' 카테고리의 다른 글

String.prototype.charAt()  (0) 2020.02.22
Set (Object)  (0) 2020.02.20
Math.round()  (0) 2020.02.16
Math.abs()  (0) 2020.01.28
Math.PI  (0) 2020.01.28
728x90

https://www.acmicpc.net/problem/1181

😢 정렬 문제를 많이 접해봤다면 금방 풀 수 있는 문제

😊
Solution 1)

입력 받은 단어 중 가장 큰 단어 길이(max)가장 작은 단어 길이(min)를 뽑아오고,
외부 for loop은 단어의 길이만큼, 내부 for loop은 입력 받은 단어 개수만큼 반복한다.
내부 for loop에서 같은 길이의 단어를 배열에 push하고, 배열 길이가 1보다 크다면 해당 배열을 정렬한 후 최종 배열에 push해준다.
이 방법으로 간단하게 해결했다.

Solution 2)

다른 풀이를 참고하던 중에, 기존에는 몰랐던 localeCompare() built-in functionSet objet를 발견했다.
sort()로 단어의 길이만큼 정렬하고, 같은 길이의 단어가 있다면 localeCompare()를 이용해 정렬이 가능했다.
그렇게 정렬된 배열new Set()에 넣어주면 unique한 value를 받아볼 수 있다.
속도도 훨씬 빠르므로 Solution 2를 추천한다.

728x90

Click! 👉 https://dasolpark.github.io/Dasol_React_Free_Image_Search_With_Unsplash/

 

Free Image Search with Unsplash

 

dasolpark.github.io

Github 👉https://github.com/DasolPark/Dasol_React_Free_Image_Search_With_Unsplash

 

DasolPark/Dasol_React_Free_Image_Search_With_Unsplash

ReactJS with Unsplash API. Contribute to DasolPark/Dasol_React_Free_Image_Search_With_Unsplash development by creating an account on GitHub.

github.com

🔍Unsplash API를 이용해 무료 이미지를 검색하는 간단한 웹 앱 사이드 프로젝트입니다.

✨ components 구성하기, state 다루기, 부모와 자식 component 간 데이터를 주고 받기, event 다루기, 
React.createRef()를 이용하여 DOM 접근하기, axios를 이용하여 API 다루기 같은 개념을 익히기에 좋습니다.

이미지 결과는 최대 30개까지 출력하며, 각 이미지 크기에 맞게 grid 크기를 적용하였습니다.

 

랜딩 페이지
검색 후 출력된 이미지 일부 페이지
검색 후 출력된 이미지 전체 페이지

+ Recent posts