오늘은 2월의 시작이다 2월의 시작을 맞이하여 오늘부터 리액트 강의가 시작된다 옛날에 직접 구매해서 봤던 강의와 동일한 내용이라 복습하는 차원에서 기초부터 보면서 다시 한번 리액트의 개념에 대해 정리하고 간단한 토이 프로젝트를 만들어보려고 한다 2월도 화이팅! # React 소개 # React 란? 지금은 Meta가 된 Facebook이 개발한 오픈소스로 자바스크립트의 UI 라이브러리이다 즉, 자바스크립트를 알아야지 리액트를 쓸 수 있다 # Node.js란? 자바스크립트는 어떻게 실행될까? 브라우저에 내장되어 있는 자바스크립트 엔진을 이용하여 실행된다 하지만 브라우저들은 서로 다른 엔진을 사용한다 아래는 각 브라우저 별로 사용하는 내장 엔진의 종류이다 크롬 브라우저가 가진 v8이 가장 대표적인 자바스크립..
전체 글
프로그래밍 공부 기록오늘은 지난번 강의에 이어서 피그마에 대한 심화 내용을 배우게 된다 실습도 진행하니 집중해서 잘 듣고 정리해야겠다 # 오토레이아웃 오토레이아웃이란 CSS의 flex와 유사한 기능이다 자주 사용되니 잘 알아두자 ① 오토레이아웃으로 설정해주고 싶은 요소들을 드래그한다 ② 단축키 shift + a 를 눌러 하나의 Frame으로 묶인 오토레이아웃으로 설정해준다 오토레이아웃 내의 요소들은 자동으로 정렬된다 오토레이아웃을 설정하면 요소의 크기가 늘어나거나 줄어들 때 자동으로 맞춰준다 # 오토레이아웃 실습 # input 컴포넌트 생성 1. text를 입력한 후 shift + a 로 오토레이아웃 설정을 한다 2. text 컴포넌트의 margin, padding, fill, stroke 값을 적절하게 설정한다 ▶bord..
# 크기가 작은 부분문자열 # 풀이 과정 이 문제의 핵심은 p의 길이가 최대 18임을 보고 Long 타입을 써야 한다는 것이다 처음에는 p와 t의 길이를 사용해서 반복하려면 어떻게 for문을 돌려야하는지가 헷갈렸다 t의 길이에서 p의 길이를 뺀 후 + 1 을 해주면 되었다 그런데 아무 생각없이 int형으로 선언해서 문제를 해결하려고 하니까 풀리지 않았다 문제를 다시 잘 보니 p의 최대 길이가 18이기 때문에 Long 타입을 써야했다 그거 말고는 substring 메소드와 Long.parseLong을 사용해서 String과 Long 사이의 타입 변환만 잘 해주면 되는 문제이다 # 정답 코드 class Solution { public int solution(String t, String p) { //p의 최..
# 디펜스 게임 # 이 과정 브루트포스로 모든 경우의 수를 구한다면 쉽게 풀 수 있는 문제겠지만 이 문제에서 주어진 범위가 매우 크다 따라서 브루트포스가 아닌 다른 알고리즘을 사용해야 한다 최대 몇 라운드까지 방어가 가능한지를 구해야 하기 때문에 우선순위 큐를 사용해서 최대로 방어할 때의 값을 출력해주면 된다 # 정답 코드 import java.util.*; class Solution { public int solution(int n, int k, int[] enemy) { // 준호의 처음 병사 수 n // 사용 가능한 무적권의 횟수 k // 공격 병사 수 배열 enemy // 최대 몇라운드까지 방어 가능한지 구하기 int answer = enemy.length; Queue pq = new Priori..
오늘의 강의는 알고리즘 4문제를 해결하는 것이다 Level0 부터 Level2 까지 총 4문제를 해결하고 구현 방법을 간단히 정리하겠다 소스코드 및 더욱 구체적인 해결 방법은 알고리즘 카테고리에 따로 정리할 것이다 일단 익숙한 자바로 문제를 해결해보았다 자바스크립트로 코드를 변경해보고 그것도 따로 포스팅하도록 하겠다 모든 문제는 자바를 기준으로 정리하였다 # [Lv0] 문자 개수 세기 아스키 코드에 대해서 알면 쉽게 풀리는 문제이다 아스키 코드로 알파벳을 숫자로, 숫자를 알파벳으로 변환할 줄 알아야 한다 # [Lv0] 이어 붙인 수 자바를 기준으로 String을 int로, int를 String으로 변환하여 코드를 짜면 금방 풀 수 있는 문제이다 (자바스크립트는 어떨지 아직 모르겠다) # [Lv1] 크기가..
브론즈 5 문제부터 시작해서 차례 차례 단계를 높여가며 알고리즘 공부를 다시 본격적으로 시작할 계획이다 오늘은 그 첫문제로 4434 평균은 넘겠지를 풀어보았다 # 백준 4434 평균은 넘겠지[브론즈 1] # 풀이 과정 우선 처음에는 평균보다 크거나 같은 것으로 구해서 답이 계속 이상하게 나왔다 평균 초과인 학생만 구하는 것이었다 그리고 숫자 타입을 어떤 것을 쓰느냐가 이 문제를 해결하는데 중요한 요소였다 처음에는 정답만 double형으로 선언하고 나머지는 int로 선언했더니 계속 답이 0.0% 가 나와서 조금 헤맸다 그리고 소수점 셋째 자리를 출력하는 방법을 알고 있어야 하는 문제다 # 자바 소수점 원하는 자리만큼 출력하는 방법 1. System.out.ptrintf() 사용 2. String.forma..
이번주부터 피그마에 대한 강의가 진행된다 옛날에 프로젝트를 하면서 피그마를 사용해본 적이 있었는데 아무래도 디자인 감각이 없고 섬세함이 부족한 나에게는 약간은 어려운 툴이었다 하지만 이번 기회에 피그마를 제대로 배워서 멋진 디자인을 만들어봐야겠다 # 피그마 소개 피그마는 다양한 UX 툴 중 압도적인 사용량을 보여주는 가장 인기있는 디자인 툴이다 피그마는 백터 기반의 툴이다 -> 확대, 축소 시에도 이미지의 깨짐이 없다 # 디자인 기초 # 컬러 디자인에서는 색상이 주는 느낌이 중요하다 디자인 시 색상이 주는 느낌을 고려해서 디자인 해야한다 # 대비 # 보색대비 서로 반대되는 색을 인접하게 위치시키는 것 색 조합이 어려울 수도 있다 # 유사대비 유사한 색을 인접하게 위치시키는 것 조화롭고 차분한 느낌을 주며..
백준 브론즈 1 단계 문제이다 알고리즘 공부를 다시 시작하면서 자바와 자바스크립트로 둘 다 문제 푸는 연습을 하기 위해서 일단 익숙한 자바로 문제 풀이를 한 후에 자바스크립트로 바꾸는 연습을 하려고 한다 일단 자바로 문제를 해결한 코드를 올려보겠다 # 문제 해결 방법 입력으로 주어진 String의 앞글자만 따서 해당 글자를 숫자로 바꾸어 배열의 인덱스로 사용한다 입력을 다 마치고 나면 다시 한번 배열을 돌면서 5 이상의 인덱스가 있는지 확인한다 있다면 해당 인덱스를 다시 알파벳으로 변경해서 String에 추가한다 없다면 "PREDAJA" 를 출력한다 # 문제 코드 package BRONZE; import java.util.Scanner; public class Main { public static voi..