https://www.acmicpc.net/problem/1138 1138번: 한 줄로 서기 첫째 줄에 사람의 수 N이 주어진다. N은 10보다 작거나 같은 자연수이다. 둘째 줄에는 키가 1인 사람부터 차례대로 자기보다 키가 큰 사람이 왼쪽에 몇 명이 있었는지 주어진다. i번째 수는 0보다 www.acmicpc.net N = int(input()) info = list(map(int, input().split())) answer = [0 for i in range(N)] for i in range(0, N): count = 0 for _ in range(0, N): if(count == info[i]): while(answer[_] != 0): _ += 1 answer[_] = i + 1 break if..
https://www.acmicpc.net/problem/1076 1076번: 저항 첫째 줄에 첫 번째 색, 둘째 줄에 두 번째 색, 셋째 줄에 세 번째 색이 주어진다. 위의 표에 있는 색만 입력으로 주어진다. www.acmicpc.net resistance = { 'black': 0, 'brown': 1, 'red': 2, 'orange': 3, 'yellow': 4, 'green': 5, 'blue': 6, 'violet': 7, 'grey': 8, 'white': 9, } color1 = input() color2 = input() color3 = input() print((resistance[color1] * 10 + resistance[color2]) * (10 **resistance[color..
https://www.acmicpc.net/problem/1063 1063번: 킹 8*8크기의 체스판에 왕이 하나 있다. 킹의 현재 위치가 주어진다. 체스판에서 말의 위치는 다음과 같이 주어진다. 알파벳 하나와 숫자 하나로 이루어져 있는데, 알파벳은 열을 상징하고, 숫자는 www.acmicpc.net MIN = 1 MAX = 8 king, stone, N = input().split() # A 1 dir = { "R": ( 1, 0), # 한 칸 오른쪽으로 "L": (-1, 0), # 한 칸 왼쪽으로 "B": ( 0, -1), # 한 칸 아래로 "T": ( 0, 1), # 한 칸 위로 "RT": ( 1, 1), # 오른쪽 위 대각선으로 "LT": (-1, 1), # 왼쪽 위 대각선으로 "RB": ( 1,..
https://www.acmicpc.net/problem/1051 1051번: 숫자 정사각형 N×M크기의 직사각형이 있다. 각 칸에는 한 자리 숫자가 적혀 있다. 이 직사각형에서 꼭짓점에 쓰여 있는 수가 모두 같은 가장 큰 정사각형을 찾는 프로그램을 작성하시오. 이때, 정사각형은 행 www.acmicpc.net N, M = map(int, input().split()) arr = [[0 for j in range(M)] for i in range(N)] for i in range(0, N): str = list(input()) for j in range(0, M): arr[i][j] = str[j] length = 0 for _ in range(0, 50): for i in range(0, N): for..
리액트의 작동 원리에서 설명했듯 리액트는 컴포넌트라는 개념을 통해 웹 페이지를 표현하게 됩니다.컴포넌트는 웹 페이지의 요소를 컴포넌트를 통해 나누어 개발한 다음 컴포넌트를 호출하는 방식을 통해 웹페이지를구성할 수 있습니다.컴포넌트는 재사용이 가능한 API로 수많은 기능들을 내장하고 있고, 컴포넌트 하나에서 컴포넌트의 생김새와 작동방식을 정의한다고설명드렸던 적이 있습니다. 우선 백문이 불여일타 라고 실제 컴포넌트를 선언한 다음 작동방식에 대해 알아보도록 하겠습니다. // 클래스형 컴포넌트import React, { Component } from "react";class CIntroduce extends Component { render() { const name = "BeingB"; retur..
JSX ( JavaScript XML ) 란 ? JavaScript의 확장 문법으로써 리액트에서 사용할 수 있는 문법을 의미합니다. JSX는 바벨이라는 도구를 이용하여 일반 자바스크립트 형태의 코드로 변환합니다. JSX는 리액트로 프로젝트를 개발할 때 사용되므로 공식적인 자바스크립트 문법이 아닙니다. function App() { return ( Hello react ); } ===== function App() { return React.createElement("div", null, "Hello ", React.createElement("b", null, "react")); } 리액트에서는 위와 같이 작성된 문법을 아래와 같은 코드형태로 변경시킵니다. 만약 컴포넌트를 렌더링할 때마다 JSX 코드를 매..
리액트의 기본 설명에 추가적으로 Virtual DOM은 매우 중요한 내용이라 생각하기에, 한번 더 상세하게 정리해보려 합니다. React의 작동 원리에서 리렌더링을 돕기 위한 효율적인 방법으로 Virtual DOM을 사용한다고 말씀 드렸습니다. 우선 DOM이란 무엇일까 ? DOM 이란 문서 객체 모델( Document Object Model ) 의 약자로HTML, XML 문서의 프로그래밍 interface 입니다. 쉽게 이해하자면 HTML 문서의 태그들을 JavaScript가 접근하고 이용할 수 있도록 Object의 형태로 만든 것을 DOM이라고 합니다. DOM은 위의 이미지와 같이 각 태그들의 포함 여부를 통한 부모 자식관계의 Tree 자료구조로 이루어져 있습니다. 우리는 위의 DOM Tree 정보를..
1. MVC 모델이란 ? MVC 모델은 Model_View_Controller의 약자로 Model 은 애플리케이션에서 사용하는 데이터를 관리하는 영역 View 는 사용자에게 보이는 부분 Controller 는 모델 데이터를 조회하거나 수정하고, 변경된 사항을 뷰에 반영 하는 역할을 하는 모델을 의미합니다. 여기서 React의 경우 오직 V(View)만 신경 쓰는 라이브러리 입니다. 2. Component 리액트 프로젝트에서 어떤 특정 부분이 어떻게 생길지 정하는 선언체를 컴포넌트 ( Component ) 라고 합니다. 컴포넌트는 재사용이 가능한 API로 수많은 기능들을 내장하고 있으며, 컴포넌트 하나에서 해당 컴포넌트의 생김새와 작동 방식을 정의합니다. 3. 초기 렌더링 / 리렌더링 1) 초기 렌더링 어..