Today I Learned
- Programmers 문제 풀기
- 스파르타 기술면접 스터디 시작
Programmers 문제 풀기
중복된 문자 제거
나의 풀이
function solution(my_string) {
let answer = "";
my_string.split("").forEach((item) => answer.includes(item) ? null : answer += item)
return answer;
}
my_string을 배열로 만든 후 foreach문을 돌려서 answr.includes(item)이라면 즉, 중복된 문자열이라면 넘어가고 false가 출력될 때만 answer에 문자열을 추가하도록 했다.
다른 사람의 풀이 01
function solution(my_string) {
return [...new Set(my_string)].join('');
}
중복을 허용하지 않는 Set 객체를 이용해서 중복되는 문자열을 거른 배열을 새로 만들고, join 메서드로 문자열로 합친다.
Set
Set 객체는 값 콜렉션으로, 삽입 순서대로 요소를 순회할 수 있습니다. 하나의 Set 내 값은 한 번만 나타날 수 있습니다. 즉, 어떤 값은 그 Set 콜렉션 내에서 유일합니다.
// 문자열 중복 제거
const str = 'abcaabbd';
// new Set으로 중복 제거
new Set(str); // {"a", "b", "c", "z"}
[...new Set(str)]; // ["a", "b", "c", "z"]
[...new Set(str)].join(''); // "abcz"
// 배열 중복 제거
const arr = ['a', 'b', 'c', 'a', 'a', 'b', 'b', 'd'];
// 1. [...new Set(arr)]
[...new Set(arr)] // ["a", "b", "c", "d"]
// 2. Array.prototype.filter()
// indexOf는 처음으로 발견한 a의 index 위치만 반환하기 때문에,
// 그 다음에 a를 순회할때는 indexOf(v)와 i가 맞지 않는다.
arr.filter((v, i) => arr.indexOf(v) === i); // ["a", "b", "c", "d"]
출처 https://ddoni-code.tistory.com/21
다른 사람의 풀이 02
var solution=s=>[...s].filter((c,i)=>s.indexOf(c)==i).join('')
indexOf() 메서드는 배열에서 지정된 요소를 찾을 수 있는 첫 번째 인덱스만 반환한다는 속성을 이용해 filter 메서드로 처리한다.
기술면접 스터디 CS 과제
웹페이지가 브라우저에 랜더링되는 과정
- 웹페이지가 로드될 때, 브라우저는 서버로부터 HTML, CSS 및 JavaScript 파일을 다운로드함
- 브라우저는 다운로드한 HTML 파일을 파싱하여 DOM 트리를 생성
- 브라우저는 다운로드한 CSS 파일을 파싱하여 CSSOM 트리를 생성, 이 규칙은 DOM 요소에 적용됨
- CSS 파싱이 종료되면 잠시 중단 되었던 html을 다시 읽고 DOM 트리를 완성함
- 레이아웃: 브라우저는 DOM과 스타일 규칙을 사용하여 각 요소의 위치와 크기를 계산한 후 각 요소가 화면에 표시될 위치를 결정
- 렌더 트리 형성: 브라우저는 계산된 위치와 크기를 사용하여 각 요소를 화면에 그리는데 이 과정에서 각 요소의 배경색, 테두리, 그림자 등이 적용됨
- 브라우저는 다운로드한 JavaScript 파일을 실행하여 동적인 기능을 추가함
- 브라우저가 화면을 그리고, 웹페이지가 완전히 로드됨
Restful API
- RESTful API는 REST 아키텍처를 구현하는 웹 서비스를 나타내기 위해서 사용되는 용어
- HTTP 표준을 기반으로 구현하므로, HTTP를 지원하는 프로그램 언어로 클라이언트, 서버를 구축할 수 있음
- 확장성과 재사용성을 높여 유지보수 및 운용이 편리함
- RESTful API는 HTTP 메서드를 이용하여 서버와 클라이언트 사이의 통신 방식을 정의함
Restful API HTTP 주요 메서드
GET
- 서버에 지정한 리소스의 정보를 요청하는 메서드
- ex) 브라우저에서 웹페이지를 요청할 때 사용
POST
- 지정한 리소스에 새로운 데이터를 추가하는 메서드
- ex) 사용자가 회원가입을 하거나 게시글을 작성할 때
PUT
- 지정한 리소스를 수정하는 메서드 (클라이언트가 서버에게 수정을 요청)
- ex) 사용자가 프로필 정보를 수정하거나 게시글을 수정할 때
DELETE
- 지정한 리소스를 삭제하는 메서드 (클라이언트가 서버에게 삭제를 요청)
- ex) 사용자가 게시글을 삭제하거나, 계정을 삭제할 때
회고
오늘부터 스파르타에서 진행하는 기술면접 스터디가 시작됐다. 일단은 첫날이라 이력서 페어리뷰는 생략하고 CS 질문에 답변하는 데일리 과제만 진행했다. 오늘은 젭 마이크 이슈로 인해 팀워들과 서로 블로그 링크를 공유하며 피드백 댓글을 남겨주는 식으로 스터디를 진행했는데 내일은 실시간으로 말하며 답변을 공유할 거 같다.
오늘은 데일리 과제 답변 준비를 제대로 못했기 때문에 내일은 좀 열심히 준비해 볼 생각이다! 그리고 내일 밤에 있는 모의면접 준비를 위해서 내 강점 대본 만들고 목터뷰 준비했던 질문들을 다시 한번 읽어봐야겠다.
'알고리즘 > Programmers' 카테고리의 다른 글
[TIL] 2023.03.29 기술면접 스터디, Programmers 문제 풀기 (0) | 2023.03.29 |
---|---|
[TIL] 2023.03.28 기술면접 스터디, Programmers 문제 풀기 (0) | 2023.03.29 |
[TIL] 2023.03.26 Programmers 문제 풀기 (3) | 2023.03.26 |
[TIL] 2023.03.25 Programmers 문제 풀기 (0) | 2023.03.26 |
[TIL] 2023.03.24 Programmers 문제 풀기 (0) | 2023.03.24 |
댓글