Algorithm
function solution(wallpaper) {
let a = []
let b = [];
wallpaper.map((v,i)=>{
if(v.includes("#")) {
a.push(i)
b.push(v.indexOf("#"))
b.push(v.lastIndexOf("#"))
}
})
return [Math.min(...a),Math.min(...b),Math.max(...a)+1,Math.max(...b)+1];
}
wallpaper
배열은 위에서부터 아래로 쭉 파일위치를 알려주기 때문에 반복문을 사용"#"
이 있는 위치가 가장 높은 곳, 가장 0에 가까운 곳, 가장 멀리 있는 곳, 가장 낮게 있는 곳까지 계산할 수 있게 2개의 배열을 받고 최대, 최솟값으로 좌표계산을 하면 마무리된다.CS
REST란 Representational State Transfer 의 약자로 자원을 이름으로 구분하여 해당 자원의 상태를 주고 받는 모든 것을 의미
즉 REST란
1. HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)를 명시하고
2. HTTP Method(POST, GET, PUT, DELETE, PATCH 등)를 통해
3. 해당 자원(URI)에 대한 CRUD Operation을 적용하는 것을 의미
CRUD Operation이란?
CRUD는 대부분의 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능인 create(생성),read(읽기),update(갱신),delete(삭제)를 묶어서 일컫는 말로 REST에서의 CRUD Operation은
- Create : 데이터 생성 (POST)
- Read : 데이터 조회(GET)
- Update : 데이터 수정(PUT,PATCH)
- Delete : 데이터 삭제(DELETE)
장점
단점
1.URI는 동사보다는 명사를, 대문자보다는 소문자를 사용하여야 함
http://test.com/Run/
http://text.com/run/
2.마지막에 슬래시 (/)를 포함하지 않는다
http://test.com/run/
http://text.com/run
3.언더바 대신 하이폰을 사용한다
http://test.com/run_blog
http://text.com/run-blog
4.파일확장자는 URL에 포함하지 않는다
http://test.com/photo.jpg
http://text.com/photo
5.행위를 포함하지 않는다
http://test.com/edit-post/1
http://text.com/post/1
RESTful이란 REST의 원리를 따르는 시스템을 의미한다. 하지만 REST를 사용했다 하여 모두가 RESTful한 것은 아니다.
REST API의 설계 규칙을 올바르게 지킨 시스템을 RESTful하다 말할 수 있고
모든 CRUD 기능을 POST로 처리 하는 API 혹은 URI 규칙을 올바르게 지키지 않은 API는 REST API를 사용하였지만 RESTful하지 못한 시스템이라 할 수 있다.