프로그래머스 문제 풀이 및 RN

Written by on
프로그래머스 문제 풀이 및 RN

React Native


// React Native Counter Example using Hooks!

import React, { useState } from 'react';
import { View, Text, Button, StyleSheet } from 'react-native';

const App = () => {
  const [count, setCount] = useState(0);

  return (
    <View style={styles.container}>
      <Text>You clicked {count} times</Text>
      <Button
        onPress={() => setCount(count + 1)}
        title="Click me!"
      />
    </View>
  );
};

// React Native Styles
const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center'
  }
});
  • useState도 비슷한듯
  • View는 꼭 필요한 요소일까?
  • 아주아주아주아주 기초적인것부터 시작했다. 사실 그동안 사용했던 리액트와 많이 비슷하기 때문에 바로 코드를 찍을 수는 있을 것 같다.
  • 모바일 환경에 적응되는게 다를테니 시행 착오는 있겠지만.. 그 부분도 열심히 따라가야겠다.
  • 카카오 로그인을 구현해야 하기 때문에, 따라해볼만한 레퍼런스를 찾았다.https://webruden.tistory.com/272
  • 우선 카카오 로그인부터 구현하고, 로직을 익히고 다음 단계로 넘어가자.

알고리즘


나누어 떨어지는 숫자의 합

문제 설명

array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요.divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.

제한사항

  • arr은 자연수를 담은 배열입니다.
  • 정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다.
  • divisor는 자연수입니다.
  • array는 길이 1 이상인 배열입니다.

입출력 예

제목 없음

입출력 예 설명

입출력 예#1arr의 원소 중 5로 나누어 떨어지는 원소는 5와 10입니다. 따라서 [5, 10]을 리턴합니다.

입출력 예#2arr의 모든 원소는 1으로 나누어 떨어집니다. 원소를 오름차순으로 정렬해 [1, 2, 3, 36]을 리턴합니다.

입출력 예#33, 2, 6은 10으로 나누어 떨어지지 않습니다. 나누어 떨어지는 원소가 없으므로 [-1]을 리턴합니다.

function solution(arr, divisor) {
    var answer = [];
    for(let i = 0; i < arr.length; i += 1) {
        if(arr[i] % divisor === 0 ){
            answer.push(arr[i])
        }
    }
    if(answer.length === 0){
			return [-1]
		}
    else{
        return answer.sort(function(a, b) {
					  return a - b;
				})
    }
    
}
//1. for문을 돌려서 divisor로 나누었을 때, 0이 되는 element를 찾는다.
//2. 1에서 찾은 element를 answer 배열에 넣는다.
//3. 만약 answer의 length가 0이라면, -1을 가지고 있는 배열을 리턴한다.
//4. answer을 정렬해서 리턴


두 정수 사이의 합

문제 설명

두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요.예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다.

제한 조건

  • a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요.
  • a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다.
  • a와 b의 대소관계는 정해져있지 않습니다.

입출력 예

제목 없음

function solution(a, b) {
    var answer = 0;
    if(a < b){
        for(let i = a ; i <= b; i += 1){
        answer = answer + i
        }
    }
    else if(a>b){
        for(let i = b ; i <= a; i += 1){
        answer = answer + i
        }
    }
    else{
        return a
    }
    
    return answer;
}
//1. a,b의 크기를 비교해서 조건문 설정
//2. i를 a부터 b까지로 설정을 해서 answer에 i++

두 알고리즘 다 프로그래머스 1단계이고 실제로도 푸는게 그렇게 오래 걸리지는 않았다. 10분정도..? 그럼에도 기본적인 부분들 놓치는게 너무 많다. 쓸데없이 분기하는것 같기도 하고.. 푸는거에만 목적을 두지 말고 시간복잡도 같은 경우를 더 고려해서 더 깔끔한 코드가 나올 수 있게끔 공부해야 한다.

Rating:

Comments

comments powered by Disqus