1.React Native와 Flutter는 사용 언어부터 차이가 난다.
React Native는 JavaScript 언어를 사용하지만
Fluuter는 Dart라는 언어를 사용한다.

Dart는 JavaScript와는 다르게 정적 언어라는 특징을 가지고 있기 때문에
Type Error등을 미리 확인해 안정적인 개발이 가능하며
두가지 컴파일 방법을 지원하기 때문에
빠른 개발이 가능하며 빠른 실행 또한 가능하다.
(필요에 따른 컴파일로 변경)

Flutter는 Hot Reload라는 기능을 통해
1초 안에 코드를 리로딩해 빠른 개발이 가능하며
리액트처럼 선언형이라는 특징이 있다.

Flutter의 가장 큰 장점은 하나의 코드로 크로스플랫폼의 동작이 가능하며
레퍼런스가 많고 빠른 개발을 할 수 있다는 것이지만
Flutter 사용자가 적어 라이브러리 등의 도움을 받기 힘들고
변화가 빨라 유지보수면에서 문제가 있다.

 

익숙함을 따지면 React Native가 편하고
굳이 어플로 만들어야 한다면 Cordova, Ionic 등 선택지는 여러개인 것 같다.



 


(1).백준 10250번 ACM 호텔은 시작한지 얼마 안됐을 시점에 틀렸던 문제였다.
층수와 순서를 합친 호수를 만들 때 101호 1001호 1010호 등의 문제를 해결하지 못했는데
a*100+b의 방식으로 간단하게 해결할 수 있었다.

또는 삼항연산자를 넣어서 0을 추가할 수도 있었다.
`${floor}${roomOrder < 10 ? '0' + roomOrder : roomOrder}`

앞의 층수는 (customers-1)%height+1을 통해 구해줬고
층 뒤의 호수는 Math.floor((customers-1)/height)+1를 통해 해결했다.

 

답답하게 해결이 되지 않아 문제를 찾지 못했는데

결국 문제는 trim()이었다..

초반에도 이 trim 하나가 없어서 백준에서 알고리즘 하는걸 포기할까 생각할 정도로

일주일 정도는 왜 틀리는지 끝까지 모르고 고통만 받았던 기간이 있었는데

기존 틀린 코드를 수정해서 하다보니

trim이 빠진 require를 사용했던 것이다..

require('fs').readFileSync('/dev/stdin').toString()
require('fs').readFileSync('/dev/stdin').toString().trim()
//.trim()하나 차이지만 불친절한 인풋 때문에 채점 자체가 되지 않을 수 있다.

진짜 초반에 고통받고 포기했던 문제

let input = `2
6 12 10
30 50 72`.split('\n')


for(let i = 1 ; i < input.length ; i++){
    const [height, width, customers] = input[i].split(' ').map(Number)
    let floor = 1
    let roomOrder = customers
    if(height !== 1){
        floor = (customers-1)%height+1
        roomOrder = Math.floor((customers-1)/height)+1
        
    }
    console.log(floor*100 + roomOrder)
}

'회고' 카테고리의 다른 글

[취업준비일지] - 107  (0) 2023.02.04
[취업준비일지] - 106  (0) 2023.02.03
[취업준비일지] - 104  (0) 2023.02.01
[취업준비일지] - 103  (0) 2023.01.31
[취업준비일지] - 102  (0) 2023.01.30

+ Recent posts