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분정도..? 그럼에도 기본적인 부분들 놓치는게 너무 많다. 쓸데없이 분기하는것 같기도 하고.. 푸는거에만 목적을 두지 말고 시간복잡도 같은 경우를 더 고려해서 더 깔끔한 코드가 나올 수 있게끔 공부해야 한다.
Comments