728x90
function solution(genres, plays) {
    var answer = [];
    let genreArr = [];
    
    genres.forEach((gen, idx) => {
        const currentCnt = plays[idx];
        const hasIdx = genreArr.findIndex(g => g.name === gen);
        if (hasIdx >= 0) {
            genreArr[hasIdx].total += currentCnt;
            genreArr[hasIdx].cntList.push({ order: idx, cnt: currentCnt });
        } else {
            genreArr.push({
                name: gen,
                total: currentCnt,
                cntList: [{ order: idx, cnt: currentCnt }]
            });  
        };
    });
        
    genreArr.sort((a,b) => a.total > b.total ? -1 : 1);
    genreArr.forEach((gen) => {
        gen.cntList.sort((a,b) => a.cnt > b.cnt ? -1 : a.cnt === b.cnt ? 1 : a.cnt < b.cnt ? 1 : -1);
        gen.cntList.slice(0, 2).forEach(({ order }) => answer.push(order));
    });
    
    return answer;
}

1. 장르를  순회하며 새 배열에 필요한 객체 형태로 push해준다.

2. 우리가 알아야 할 값은, 장르별 총합과 index별 플레이 횟수이다.

3. 따라서, name, total, list<{order, cnt}> 구조로 객체를 정의해주었다.

4. 장르 total에 따라서 정렬

5. 장르 내 재생횟수 높은순 -> 고유번호 낮은순으로 정렬

6. 장르별로 두개씩 모아서 앨범을 출시한다고 했으므로, slice(0, 2)하여 출력

728x90
반응형
728x90

경우의 수와 관련된

수학문제

 

function solution(clothes) {
  let answer = 1;
  let obj = {};
  
  for(var i=0; i < clothes.length; i++) { 
    if(obj[clothes[i][1]] >= 1) { 
      obj[clothes[i][1]] += 1;
    } else { 
      obj[clothes[i][1]] = 1;
    } 
  }
    
  for (let key in obj) { 
    answer *= (obj[key]+1);
  }

  return answer - 1;
}

1. 객체에 해당 옷의 종류가 없으면 1

2. 객체에 해당 옷의 종류가 있으면 기존값 + 1

3. 경우의 수 계산을 위해 종류별로 곱해나가는데 (곱의 법칙), 해당 종류의 옷을 안입는 경우의 수도 존재하니 +1하여 곱한다.

4. 3번에 옥의티로 저렇게하면 모든 옷을 안입은 경우의 수가 발생하게 되는데 문제에서 아무것도 안입는 경우는 없다고 했으므로 마지막에 -1을 해준다.

 

 

* 한걸음 더 나아가 생각해보기

만약에, 문제에 모든 종류의 옷을 반드시 한가지씩 입어야한다는 조건이 붙는다면?

function solution(clothes) {
  let answer = 1;
  let obj = {};
  
  for(var i=0; i < clothes.length; i++) { 
    if(obj[clothes[i][1]] >= 1) { 
      obj[clothes[i][1]] += 1;
    } else { 
      obj[clothes[i][1]] = 1;
    } 
  }
    
  for (let key in obj) { 
    answer *= obj[key];
  }

  return answer;
}

1. 해당 종류의 옷을 안입는 경우를 제외

2. 위의 코드에서 모든 종류의 옷을 안입는 경우는 발생하지 않으므로 마지막에 -1도 제외

728x90
반응형
728x90

* 떠올려본 방법

1. completion을 포문으로 돌린다 + participant에서 해당 index를 찾아 + splice(index, 1) [시간초과]

2. 2중포문으로 비교해나간다. [시간초과]

3. sort를 이용해 각 배열을 정렬 + 순서대로 비교해가며 다를때 리턴 [성공]

 

function solution(participant, completion) {
  participant.sort();
  completion.sort();
    
  for (let i=0; i<participant.length; i++) {
    if (participant[i] !== completion[i]) {
      return participant[i];
    }
  }
}

 

728x90
반응형
728x90

react-native에서의 image 다루기는

웹에서 css를 통해 다루는것보다

조금 더 까다로운것같다.

 

이유는 auto라는 사기적인 옵션이

RN에는 존재하지않기 때문인것같다.

 

* 목표: 가로는 화면비율, 세로는 이미지 크기에 맞게 떨어지게 해보자

// Web이었다면?
width: 100%;
height: auto;
object-fit: contain;

 

웹에서는 이렇게나 간단한걸

우리는 약간은 길고 고생스럽게 해야한다.

import React, { useState } from 'react';
import { Image, Dimension } from 'react-native';

function ImageTestModule({ imagePath }) {
  const [height, setHeight] = useState(0);
  const { width } = Dimension.get('window');
  Image.getSize(imagePath, (w, h) => {
    setHeight(h * (width / w));
  });
  
  return (
    <Image
      style={{ width: '100%' }}
      source={{ uri: imagePath, height }}
      resizeMode='cover'
    />
  );
}

 

다소, 복잡하고 길어보이지만

완벽하게 원하던 바를 달성할수있다.

728x90
반응형
728x90

제작중인 앱에서 파일을

다운로드/업로드 해야한다.

 

주요 라이브러리중

rn-fetch-blob를 선택하였는데,

써보기도전에 cycle warning이 발생했다.

 

구글링 결과

node_modules > rn-fetch-blob > polyfill > Blob.js, Fetch.js, XmlHttpRequest.js

3개 파일을 아래와같이 일부 수정해줌으로써

경고를 지울수있었다.

 

// import RNFetchBlob from '../index.js'
import { NativeModules } from 'react-native';

...

const RNFetchBlob = NativeModules.RNFetchBlob;
const log = new Log('XMLHttpRequest')

 

다만, 이렇게했을때는

재설치, 업데이트 등을 했을떄 다시 해당 문제가

발생할수 있어보인다.

 

필요하다면 라이브러리를 포크해

손봐서 써야될지도

728x90
반응형
728x90

웹 혹은 앱을 개발하다보면

Select (Picker)는 거의 꼭 들어간다

 

RN에서는

https://openbase.com/categories/js/best-react-native-select-libraries

위에서 보면 알수있듯이

@react-native-picker/picker가

절대적으로 많이쓰인다.

 

그런데 현재 기준 최신버전인 2.1.0버전 설치과정에서

오류가 발생하고 해결했기에

정리해둔다.

 

npm 설치는 정상적으로 완료된다.

npm i react-native-picker-select

다음 작업도 문제 없어 보이는듯 하다

cd ios && pod install

 

그런데

react-native run-ios

막상 실행해보면 엄청난 빌드 오류들이 나타난다.

이거다 싶은 힌트도 없다

 

 

과거의 경험들로 비추어 봤을때

이런 경우에는 모듈간, 버전간 충돌인 확률이 높다.

 

 

아래와 같이 처리했다.

(제거) rm -rf node_modules
(제거) cd ios && rm -rf Pods && cd ..
(설치) npm i
(업데이트/설치) cd ios && pod update && cd ..
(실행) react-native run-ios

 

위와 같은 방법으로

나는 깔끔하게 문제를 해결했다.

728x90
반응형
728x90

서울 오류동 행복주택 최종본

주요내용 정리입니다.

 

1. 공급일정

- 접수 기간 : 21년 11월 8일 ~ 21년 11월 9일

- 서류제출 대상자 발표일 : 21년 11월 11일

- 서류 접수 기간 : 21년 11월 15일 ~ 21년 11월 17일

(접수처 소재지 : 서울특별시 영등포구 양산로 107, 안곡빌딩 2층 LH서울서부권주거복지지사)

- 당첨자 발표일 : 22년 2월 11일

- 계약기간 : ?

 

2. 주요 타겟

사회초년생 > 16, 29

신혼, 예비신혼 > 36, 44

 

 

3. 모집 요건 및 대상 (사회초년생 기준)

- 월 소득 평균 3,853,332원 이하이면 충족

- 총 자산 가액 2억1500만원 이하이면 충족

- 총 자동차 가액 2767만원 이하이면 충족

+

- 서울시 거주자/근로자

- 혹은 연접지역(의정부/남양/구리/하남/성남/안양/과천/광명/부천/인천/김포/고양/양주) 근로자

- 아래의 조건을 만족하면 우선 공급 대상자에 속하게됨 (우선공급에서 탈락하면, 자동으로 일반으로 배정되니 가능하면 우선으로)

 

 

728x90
반응형
728x90

오랜 기간동안 

신혼을 준비하기위해 부동산 관련 정보를 모아왔다.

 

매수도 고려해봤지만

자금의 여력이 없고

개인적으로 시기상 안좋다고 판단

 

수도권(규제지역)에

전세집을 마련하기로 결정했다.

 

마침 전세대출규제는 없던일로한다는

정부의 발표가 있었다.

(참고로 전세는 규제지역 제한과 전혀 상관없다)

 

3억 전세를

가능한 많은 대출(풀대출)을 이용해 마련하려면

어떻게 플랜을 짜볼수있을까?

 

바로,

버팀목(1.2억) + 은행전세대출(1.2억) + 현금(0.6억)  = 3억

조합이다.

 

진짜, 현금(0.6억)이 모자란 경우

신용대출을 통해 모자란 금액을 매꾸는 방법이 있는데

이는 추천하지 않는다.

 

이렇게하면 전세의 장점인

고정지출 감소는 먼나라 이야이가된다.

차라리 월세가 났다.

 

버팀목은 수도권 기준

85m2이하, 임차보증금 3억이하의 집에 대해서 가능하다.

LTV 70%, 최대 1.2억까지.

 

즉, 임대보증금이 3억인 집이라면

그것의 70%인 2.1억이 아니라

최대치인 1.2억을 대출 받을수있게된다.

 

1.2억에 대한 이자는 얼마일까

버팀목 대출 이자의 중간값인 2.2%로 계산해보면

한달 약 22만원 정도의 이자가 지출되게 된다.

 

1금융권 은행의 전세보증금대출은

보통 임차보증금의 최대 80% 수준에서 가능하다.

(개인 신용도에 따라 다름)

 

80%가 가능하다고 봤을때

임차보증금 3억 중 2.4억을 대출받을수 있는것이다.

하지만 우리는 이미 1.2억을

저금리인 버팀목으로 대출완료했다.

 

우리는 차액인 1.2억만 은행권에서

대출을 받을 수 있다.

 

은행에서 1.2억을 빌리면 이자는 얼마일까

은행의 이자표의 중간값을 따져보면 3.5%정도 된다.

한달 약 35만원 정도의 이자가 지출되게 된다.

 

이렇게 봤을때

우리는 주택기금/은행에 월세로 57만원 정도를 주고

2.4억을 빌릴수있는 셈이다

 

현금 6천만원이 있다면

월세 57만원으로

전세 3억 아파트에 살수있따.

현명한 소비인지는 개인이 따져보아야한다.

 

별다른 투자를 하지 않는다면

대출의 비율은 줄이고 현금의 비중을 키우는 방향으로

가는것이 옳을것이고

 

특별난 투자의 기술이나 지식이 있어

현금을 최대한 아끼고자 한다면

가능한 많은 대출을 해서

전세집을 마련하는게 좋을것이다.

728x90
반응형
728x90

용인 김량장 H-1블록 행복주택 예비자 모집공고

주요내용 정리입니다.

 

1. 공급일정

- 신청접수 : 21년 11월 3일(수), 10시 ~ 21년 11월 8일(월), 16시

- 서류제출 대상자 발표 : 21년 11월 16일(화), 17시 이후 (LH청약센터에서 확인 가능)

- 서류제출 대상자 서류접수 : 21년 11월 17일(수) ~ 21년 11월 23일(화), 등기우편으로 제출

 > 등기우편 접수주소 : 경기도 용인시 기흥구 동백중앙로 225-6 쥬네브스타월드 9층, 용인권 주거복지사 <용인김량장 건설예비담당 앞>, 우편번호 17006

- 예비입주자 당첨자 발표 : 22년 2월 11일(금), 17시 이후

- 계약 체결: 22년 2월 당첨자 발표 후, 계약 2~3주 전 개별통보

 

2. 주요타겟

결혼 예정 없는 청년 > 16형, 청년계층 (모집자가 상대적으로 많음)

결혼 할지도... > 26형, 청년계층

결혼 예정 > 36형, 신혼부부 계층

 

 

3. 모집 요건 및 대상

- 월 소득인 4,487,447원 (150%) 이하이면 충족

- 총 자산가액 합산 기준 2억5400만원 이하이면 충족

- 총 자산 중 자동차가액이 3496만원 이하이면 충족

 

 

4. 순위요건

- 1순위 : 해당 주택건설지역(용인시) 또는 연접지역 (성남시, 의왕시, 수원시, 화성시, 평택시, 안성시, 이천시, 광주시)가 거주지이거나 소득건거지인 자

- 2순위 : 1순위 외에 서울/인청/경기가 거주지이거나 소득근거지인 자

- 3순위 : 그외

 

728x90
반응형
728x90

화성동탄지역 행복주택 예비입주자 모집공고

주요내용 정리입니다.

 

1. 공급일정

- 신청접수: 21년 11월 1일(월), 10시 ~ 21년 11월 3일(수), 17시

- 서류제출 대상자 발표: 21년 11월 5일(금), 17시 이후 (LH청약센터에서 확인 가능)

- 서류제출 대상자 서류접수: 21년 11월 5일(금) ~ 21년 11월 12일(금), 등기우편으로 제출

 > 등기우편 접수주소: 경기도 화성시 메타폴리스로53 스타프라자 4층, LH 화성동부권 주거복지지사 행복주택 공급담당자 앞 (우편번호: 18454)

- 예비입주자 당첨자 발표: 22년 2월 3일(목), 17시 이후

- 계약 체결: 22년 2월 말

 

2. 주요 타겟 (주관적인)

A82블록 - 36A, A77-1블록 - 36A

 

 

3. 모집요건 및 대상 (청년 모집 기준)

- 월 소득이 3,589,957원 이하 (120%) 이면 충족

- 자산가액 합산 기준 2억5400만원 이하

- 총 자산중 자동차가액이 3496만원 이하

 

4. 순위요건

- 1순위 : 화성시 또는 연접지역 (안산시, 수원시, 용인시, 오산시, 평택시)가 거주지거나 소득근거지인 자

- 2순위 : 1순위에 해당되지 않는 지역 중, 서울/인천/경기 가 거주지거나 소득근거지인 자

- 3순위 : 그외

 

 

728x90
반응형