Today I Learned
- Programmers 문제 풀기
- 기술면접 스터디
Programmers 문제 풀기
팩토리얼
나의 풀이
function solution(n) {
let answer = 1;
for ( i = 2; i <= Number.MAX_SAFE_INTEGER; i++ ) {
answer *= i
if ( n === answer ) {
return i
} else if ( answer > n ) {
return i - 1
}
}
}
for문을 사용했는데 조건문을 뭘로 설정해야 할지 모르겠어서 저번에 찾아봤던 Number.MAX_SAFE_INTEGER (최대 정수값)을 사용했다. for문을 돌리면서 answer에 i를 계속해서 곱하고 if문 조건을 충족하면 값을 반환한다.
다른 사람의 풀이
function solution(n) {
var answer = 1
var a = 0
while(answer <= n){
a++
answer *= a
}
return a-1;
}
while문을 사용하면 조건문이 참일 때만 중괄호 안에 내용을 실행하기 때문에 따로 한계를 설정할 필요가 없다. while문을 아직 한 번도 안 써봤기 때문에 다음에는 for문 말고 while문 쓰는 방법을 익혀야겠다!😤
기술면접 스터디 CS 지식
HTTP란?
- 클라이언트와 서버 간의 자원을 교환하기 위한 TCP/IP 기반 통신 규약 (프로토콜)
- 클라이언트-서버 모델 :클라이언트가 HTTP messages 양식에 맞춰 요청(Request)을 보내면, 서버도 HTTP messages 양식에 맞춰 응답(Response)함
특징
- 단방향성: 서버가 먼저 응답을 보낼 수 없고 클라이언트가 요청을 보내야만 응답할 수 있음
- 비연결성: 클라이언트의 요청으로 서버와 연결된 후, 요청에 대한 응답의 데이터를 전송하면 연결을 종료함
- 따라서, 실시간 통신을 할 수 없음
단점
- HTTP는 평문 통신이기 때문에 도청이 가능함
- 통신 상대가 검증된 상대인지 확인하지 않기 때문에 위장이 가능함
- 완전성을 증명할 수 없기 때문에 변조가 가능함
HTTP 메세지 구조
- HTTP messages는 클라이언트와 서버 간에 전송되는 데이터의 형식을 정의하는 규약
- 유형
- 요청(Requests): 클라이언트 → 서버
- 응답(Responses): 서버 → 클라이언트
- 구성
- HTTP messages는 몇 줄의 텍스트 정보로 구성됨
- 구성 파일, API, 기타 인터페이스에서 HTTP messages를 자동으로 완성하기 때문에 개발자는 이런 메시지를 직접 작성할 필요가 없음
요청(Requests)과 응답(Responses)의 구조
- start line
- 요청이나 응답의 상태를 나타냄
- start line (요청): HTTP method, Request target, HTTP version으로 구성됨
- status line (응답): HTTP version, Status Code, Status Text로 구성됨
- 항상 첫 번째 줄에 위치
- HTTP headers
- 해당 request나 response에 대한 추가 정보를 담고 있는 부분
- Key:Value 형태로 구성
- general headers, request headers, entity headers로 구성됨
- empty line
- 헤더와 본문을 구분하는 빈 줄
- body
- 요청 또는 응답 관련 전송하는 데이터를 담고 있는 부분
- 요청과 응답의 유형에 따라 선택적으로 사용 (전송하는 데이터가 없다면 body 부분은 비어있음)
참고
https://surprisecomputer.tistory.com/54
https://hanamon.kr/네트워크-http-메세지-message-요청과-응답-구조/
https://hahahoho5915.tistory.com/62
position 사용 방법
- CSS의 position 속성은 HTML 요소의 위치를 지정하는 데 사용됨
- position 속성은 주로 요소의 정확한 위치 지정을 위해서 top, left, bottom, right 속성과 함께 사용됨
position: static
- position 속성의 기본값
- HTML에 작성된 순서 그대로 브라우저 화면에 표시됨
- 따라서 top, left, bottom, right 속성값은 무시됨
position: relative
- 요소를 원래 위치를 기준으로 상대적(relative)으로 배치 가능
- 요소의 위치 지정은 top, bottom, left, right 속성을 이용해서 요소가 원래 위치에 있을 때의 상하좌우로 부터 얼마나 떨어지게 할지를 지정함
position: absolute
- 가장 가까운 위치에 있는 조상 요소를 기준으로 요소를 배치
- DOM 트리를 따라 올라가다가 position 속성이 static이 아닌 첫 번째 상위 요소가 해당 요소의 배치 기준으로 설정됨
- 어떤 요소의 display 속성을 absolute로 설정하면, 부모 요소의 display속성을 relative로 지정하여 사용
- 부모 요소(가장 가까운 상위 요소)를 기준으로 top, left, bottom, right 속성을 적용
position: fixed
- 요소를 항상 고정된 위치에 배치 가능
- 자신이나 부모 요소가 아닌 뷰포트(viewport), 즉 브라우저 전체화면을 기준으로 요소를 배치함
- top, left, bottom, right 속성은 각각 브라우저 상단, 좌측, 하단, 우측으로 부터 해당 요소가 얼마나 떨어져 있는지를 결정함
position: sticky
- 설정된 위치(예 top: 0px)에 도달하기 전까지는 static 속성처럼 동작하다가 설정된 스크롤 지점에 다다르면 fixed 속성처럼 요소를 고정시킴
- sitcky 속성은 필수적으로 top, bottom, left, right 중에 하나를 설정해야 함
참고 https://www.daleseo.com/css-position/
회고
이력서 자기소개 부분이 너무 진부하고 재미없는 거 같아서 전부 갈아엎고 싶은데 쉽지가 않다.. 자꾸 이력서가 부족하다는 생각하지 말고 일단 넣고 보는 게 맞는 거 같다! 그래서 오늘 원티드에서 제공하는 양식에 맞게 이력서를 업데이트하고 회사도 한 군데 지원했다. 이제 슬슬 시작해야지~
'알고리즘 > Programmers' 카테고리의 다른 글
[TIL] 2023.04.01 Programmers 문제 풀기 (0) | 2023.04.02 |
---|---|
[TIL] 2023.03.31 기술면접 스터디, Programmers 문제 풀기 (0) | 2023.03.31 |
[TIL] 2023.03.29 기술면접 스터디, Programmers 문제 풀기 (0) | 2023.03.29 |
[TIL] 2023.03.28 기술면접 스터디, Programmers 문제 풀기 (0) | 2023.03.29 |
[TIL] 2023.03.27 기술면접 스터디, Programmers 문제 풀기 (4) | 2023.03.27 |
댓글