목록전체 글 (265)
SW
0. 지리적 위치 정보 이용하기 모바일 앱에서 사용자의 위치를 안다는 것은 매우 중요하다. 리액트 네이티브는 지리적 위치 추적(geolocation) 기능을 기본적으로 제공한다. 이 기능은 플랫폼에 상관없이 동일하게 사용할 수 있다. 사용자 위치 얻어오기 사용자 위치를 얻어올 때는 navigator.geolocation을 호출하면 된다. getCurrentPosition은 성공 콜백(success callback), 에러 콜백(error callback), getOptions 이렇게 3개의 인자를 받는다. 성공 콜백만 필수 인자이다. 성공 콜백으로 전달되는 position 객체에는 좌표와 타임스탬프(time stamp)가 들어 있다. getOptions는 객체로서 timeout, enableHighAcc..
0. 제목 백준 6378 디지털 루트 BOJ 6378 디지털 루트 C++ 6378 디지털 루트 1. 문제 https://www.acmicpc.net/problem/6378 2. 풀이 이 문제의 핵심은 수가 최대 1000자리라는 것이다. int 는 불가능하고 long long 마저도 불가능하다. 따라서 문자열로 입력받는다. 그 후 한자리수가 될 때까지 반복적으로 조건에 따라 계산을 한다. 3. 코드 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 #include #include using namespace std; int main(int argc, const char * argv[]) { string s; int s..
0. Delete Mutation movie를 지우는 Mutation을 작성해보겠다. 먼저 resolvers.js를 다음과 같이 작성한다. deleteMovie는 Boolean형을 return 하도록 설정했으므로 schema.graphql을 다음과 같이 작성한다. 아래는 전에 작성했던 db.js중 deleteMovie 내용이다. playground를 보자. 위와 같이 실행을 한 후 다시 movie query를 보면 다음과 같이 id가 3인것이 사라진 것을 볼 수 있다. 위 과정까지 한 것은 영화 정보를 받을 때 Query를 하였고 Database의 상태를 바꾸기 위해서 Mutation을 하였다. server를 다시 껐다 키면 movies는 원래 상태로 돌아갈 것이다. 왜냐하면 이것은 memory에 있는 ..
0. 제목 백준 2225 합분해 BOJ 2225 합분해 C++ 2225 합분해 1. 문제 https://www.acmicpc.net/problem/2225 2. 풀이 0부터 N까지의 정수 K개를 더해서 그 합이 N이 되는 경우의 수를 구하는 문제이다. dp를 이용하였고 dp[K][N]의 의미는 K개의 수로 N을 만드는 경우의 수이다. 예를 들어, dp[3][30]을 구한다고 해보자. 3개로 30을 만들어야 하는 경우이고, 마지막에 더하는 수가 0이라면 2개로 30을 만드는 경우가 나올테고, 마지막에 더하는 수가 1이라면 2개로 29를 만드는 경우가 나올테고, 마지막에 더하는 수가 2라면 2개로 28을 만드는 경우가 나올테다. 위와 같이 쭉 나열해보면 다음과 같은 점화식이 나온다. dp[i][j] = dp..
0. 스타일의 선언과 조작 리액트 네이티브는 모든 스타일이 자바스크립트 안에 존재하고 명시적으로 컴포넌트에 스타일 객체를 연결해야 한다. 리액트 네이티브에서는 스타일시트 대신에 자바스크립 기반의 스타일 객체를 사용한다. 먼저, 인라인 스타일을 사용할 수 있다. 인라인 스타일이 최선의 방법은 아니지만 문법적으로는 가장 간단하게 리액트 네이티브의 컴포넌트에 스타일을 적용하는 방법이다. 약식으로 간단히 스타일에 변화를 줄 때 쓴다. 많이 쓰는 방식은 StyleSheet.create방식이다. 반복적인 객체 할당을 줄여 성능적인 이점이 있다. 코드를 명확하게 구조화할 수도 있다. 한번 생성된 스타일은 변경할 수 없다(immutable). 두 개 이상의 스타일을 합치고 싶을 때 어떻게 해야 할까? style속성은 ..
0. Defining Mutations & Creating Mutations 영화를 몇개의 모의데이터로 만들어 놓았다. 지난 포스팅에 했던 것과 비슷하게 getById함수를 구현하였다. 모의 데이터 배열을 반환해주는 getMovies라는 함수도 다음과 같이 구현하였다. 다음으로, 영화를 삭제하는 deleteMovie를 구현해보겠다. id를 argument로 받고 그 id를 사용하여 delete를 할 것이다. 원리는 같은 id를 가지지 않은 movie의 배열을 만들 것이다. cleanedMovies는 같은 id를 가지지 않은 movie들을 담아놓는다. movies배열의 길이가 cleanedMovies배열의 길이보다 길면 movies = cleanedMovies 를 수행하고 true를 반환한다. 이제 sch..
0. 제목 백준 9461 파도반 수열 BOJ 9461 파도반 수열 C++ 9461 파도반 수열 1. 문제 https://www.acmicpc.net/problem/9461 2. 풀이 점화식을 찾으면 쉽게 풀리는 문제이다. 두가지 점화식으로 풀리는데 다음과 같다. dp[i] = dp[i-2] + dp[i-3] dp[i] = dp[i-1] + dp[i-5] 두가지 중 하나로 코드를 짜면 정답이다. 3. 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 #include using namespace std; int main(int argc, const char * argv[]) { int T, N; long int dp[101] = {0}; cin >> ..
0. Extending the Schema GraphQL Playground는 다음과 같다. 왼쪽 : Query를 보냈고 Query에는 name을 넣었다. 오른쪽 : GraphQL이 내 서버에서 Query에 맞는 Resolvers를 찾는다. 그래서 GraphQL Playground는 뭘까? Playground는 graphql-yoga에 따라오는 건데 나의 Database를 테스트하게 해주는 것이다. 그게 playground가 하는 일의 전부이다. Query는 JSON data 같은 것이다.이것을 어디론가 보내야 하는데 그것을 POST라고 한다. Query들, Mutation들 모두 항상 POST로 보내야 한다. 왜냐하면, 서버가 받아야 하기 때문이다. 이제 좀 더 확장시킨 예를 보겠다. 다음과 같이 Ob..
0. GraphQL이란? Graph QL(이하 gql)은 Structed Query Language(이하 sql)와 마찬가지로 쿼리 언어이다. 하지만 gql과 sql의 언어적 구조 차이는 매우 크다. 또한 gql과 sql이 실전에서 쓰이는 방식의 차이도 매우 크다. gql과 sql의 언어적 구조 차이가 활용 측면에서의 차이를 가져왔다. sql은 데이터베이스 시스템에 저장된 데이터를 효율적으로 가져오는 것이 목적이고, gql은 웹 클라이언트가 데이터를 서버로 부터 효율적으로 가져오는 것이 목적이다. sql의 문장(statement)은 주로 백앤드 시스템에서 작성하고 호출 하는 반면, gql의 문장은 주로 클라이언트 시스템에서 작성하고 호출 한다. GraphQL은 Backend개발을 쉽게 만들어 준다. Pr..
0. 제목 백준 1167 트리의 지름 BOJ 1167 트리의 지름 C++ 1167 트리의 지름 1. 문제 https://www.acmicpc.net/problem/1167 2. 풀이 두점 사리의 거리 중 가장 먼 것을 찾아야 하므로 한점을 잡고 그 점으로부터 가장 먼 점을 먼저 찾는다. 찾은 가장 먼 점을 기준으로 잡고 또 다시 그곳으로부터 가장 먼 점을 찾는다. 위와 같은 아이디어를 가지고 시작해보겠다. vector 원소의 자료형으로 pair로 설정하였는데, first에는 연결된 정점, second에는 거리를 저장하였다. 가장 먼 점을 구해야 하기 때문에 bfs를 사용하였다. 기준점으로부터의 거리를 저장하는 dist배열을 만든 후 bfs로 한단계를 거칠때마다 그 거리를 더해준 후 저장한다. 첫번째 bf..