![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/3uxR7/btrj2VHe6cn/4PpQkoWBvQnx1B7I2lB211/img.gif)
Issue ์ Carousel Slide ๊ธฐ๋ฅ์ ํด๋น Main Page ๋ฟ๋ง ์๋๋ผ ๋ค๋ฅธ Page ๋ด์์๋ ์ฐ์ด๊ธฐ ๋๋ฌธ์ ๋ฐ๋ก ์ปดํฌ๋ํธ๋ก ๋ถ๋ฆฝํ ํ์๊ฐ ์์์ ํ์ธํ์๋ค. Carousel Slide ๊ธฐ๋ฅ์ด ๋ฆฌ์คํธ ํ์์์ ์ ๋๋ก ๋์ํ๊ธฐ ์ํด์๋, ํด๋น ๋ฆฌ์คํธ ์์๋ค์ด Wrapper์ธ Carousel Slide ํ๊ทธ ๋ด๋ถ๋ก ๋ค์ด๊ฐ์ผ ํ๋ค. Solution ์ฐ์ ์ ๋ค์๊ณผ ๊ฐ์ด ๋ฆฌ์คํธ ์์๋ฅผ ๋์ ์ผ๋ก ์์ฑํด ์ฃผ๋ MovieList ์ปดํฌ๋ํธ๋ฅผ ๋ฐ๋ก ๋ถ๋ฆฌํ์ฌ ์ฃผ์๋ค. (Feed Layout ๋ํ ๋์ค์ ์ฌํ์ฉํ๊ธฐ ์ํด Presentation Component๋ก ๋ฐ๋ก ๋ถ๋ฆฌํ์ฌ ์ฃผ์๋ค) render() { let { curFeedsType, curMovieListData } = this.state; if (this..
๋ฌธ์ ๋ฌธ์ ์ค๋ช XX๊ฒ์์๋ ํผ๋ก๋ ์์คํ (0 ์ด์์ ์ ์๋ก ํํํฉ๋๋ค)์ด ์์ผ๋ฉฐ, ์ผ์ ํผ๋ก๋๋ฅผ ์ฌ์ฉํด์ ๋์ ์ ํํํ ์ ์์ต๋๋ค. ์ด๋, ๊ฐ ๋์ ๋ง๋ค ํํ์ ์์ํ๊ธฐ ์ํด ํ์ํ "์ต์ ํ์ ํผ๋ก๋"์ ๋์ ํํ์ ๋ง์ณค์ ๋ ์๋ชจ๋๋ "์๋ชจ ํผ๋ก๋"๊ฐ ์์ต๋๋ค. "์ต์ ํ์ ํผ๋ก๋"๋ ํด๋น ๋์ ์ ํํํ๊ธฐ ์ํด ๊ฐ์ง๊ณ ์์ด์ผ ํ๋ ์ต์ํ์ ํผ๋ก๋๋ฅผ ๋ํ๋ด๋ฉฐ, "์๋ชจ ํผ๋ก๋"๋ ๋์ ์ ํํํ ํ ์๋ชจ๋๋ ํผ๋ก๋๋ฅผ ๋ํ๋ ๋๋ค. ์๋ฅผ ๋ค์ด "์ต์ ํ์ ํผ๋ก๋"๊ฐ 80, "์๋ชจ ํผ๋ก๋"๊ฐ 20์ธ ๋์ ์ ํํํ๊ธฐ ์ํด์๋ ์ ์ ์ ํ์ฌ ๋จ์ ํผ๋ก๋๋ 80 ์ด์ ์ด์ด์ผ ํ๋ฉฐ, ๋์ ์ ํํํ ํ์๋ ํผ๋ก๋ 20์ด ์๋ชจ๋ฉ๋๋ค. ์ด ๊ฒ์์๋ ํ๋ฃจ์ ํ ๋ฒ์ฉ ํํํ ์ ์๋ ๋์ ์ด ์ฌ๋ฌ๊ฐ ์๋๋ฐ, ํ ์ ์ ๊ฐ ์ค๋ ์ด ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bqkh1A/btrjk3SIRqh/Z8Mw1TNJsufBBbzKlldCK1/img.png)
๋ฌธ์ ๋ฌธ์ ์ค๋ช ์ ์ n์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. ๋ค์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ๋ฐ๋ณ์ ๊ธธ์ด์ ๋์ด๊ฐ n์ธ ์ผ๊ฐํ์์ ๋งจ ์ ๊ผญ์ง์ ๋ถํฐ ๋ฐ์๊ณ ๋ฐฉํฅ์ผ๋ก ๋ฌํฝ์ด ์ฑ์ฐ๊ธฐ๋ฅผ ์งํํ ํ, ์ฒซ ํ๋ถํฐ ๋ง์ง๋ง ํ๊น์ง ๋ชจ๋ ์์๋๋ก ํฉ์น ์๋ก์ด ๋ฐฐ์ด์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์. ์ ํ์ฌํญ n์ 1 ์ด์ 1,000 ์ดํ์ ๋๋ค. ์ ์ถ๋ ฅ ์ nresult 4 [1,2,9,3,10,8,4,5,6,7] 5 [1,2,12,3,13,11,4,14,15,10,5,6,7,8,9] 6 [1,2,15,3,16,14,4,17,21,13,5,18,19,20,12,6,7,8,9,10,11] ๋ฌธ์ ํ์ด ์ด 3๋ฐฉํฅ์ผ๋ก ์ด๋: ์๋๋ก ๋ด๋ ค๊ฐ๊ธฐ, ์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋ํ๊ธฐ, ์๋ก ์ฌ๋ผ๊ฐ๊ธฐ ๋ฐฉํฅ์ ์ ํ ๊ธฐ์ค์ ์ฃผ์ด์ง ๋ฐฐ์ด ์ธ๋ฑ์ค ๋ฒ์๋ฅผ ๋ฒ์ด๋..
Issue ์ ์ธํ React๋ ์ํธ์์ฉ์ด ๋ง์ UI๋ฅผ ๋ง๋ค ๋ ์๊ธฐ๋ ์ด๋ ค์์ ์ค์ฌ์ค๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ ์ํ์ ๋ํ ๊ฐ๋จํ ๋ทฐ๋ง ์ค๊ณํ์ธ์. ๊ทธ๋ผ React๋ ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋จ์ ๋ฐ๋ผ ์ ์ ํ ์ปดํฌ๋ํธ๋ง ํจ์จ์ ์ผ๋ก ๊ฐฑ์ ํ๊ณ ๋ ๋๋งํฉ๋๋ค. ์ ์ธํ ๋ทฐ๋ ์ฝ๋๋ฅผ ์์ธก ๊ฐ๋ฅํ๊ณ ๋๋ฒ๊ทธํ๊ธฐ ์ฝ๊ฒ ๋ง๋ค์ด ์ค๋๋ค. ๋ค์ ์ค๋ช ์ ๋ฆฌ์กํธ ๊ณต์ ์ฌ์ดํธ์ ์ฒ์ ๋ค์ด๊ฐ๋ฉด ๋ฉ์ธ ํ์ด์ง์์ ๋ฐ๋ก ํ์ธํ ์ ์๋ค. ์ฌ๊ธฐ์ ๋งํ๋ ์ ์ธํ์ด ์ ํํ ์ด๋ค ์๋ฏธ๋ฅผ ์ง๋๊ณ ์๋์ง, ์ค์ ์ฝ๋ ํ์์ ์ฝ๋์ ํจ๊ป ์ดํด๋ณด๊ณ ์ ํ๋ค. ๋ช ๋ นํ ํ๋ก๊ทธ๋๋ฐ๊ณผ ์ ์ธํ ํ๋ก๊ทธ๋๋ฐ ๋ช ๋ นํ ํ๋ก๊ทธ๋๋ฐ์ ์ด๋ป๊ฒ ํ ๊ฒ์ธ๊ฐ, ์ ์ธํ ํ๋ก๊ทธ๋๋ฐ์ ๋ฌด์์ ํ ๊ฒ์ธ๊ฐ ๋ช ๋ นํ ํ๋ก๊ทธ๋๋ฐ(Imperative Programming)์ ์ด๋ค ๋ฐฉ๋ฒ(How)์ผ๋ก ํ ๊ฒ์ธ์ง์..
Issue import React, { Component } from 'react'; import { Link } from 'react-router-dom'; class Comments extends Component { render() { let { name, comment } = this.props; let isSkip = false; let addVal; if (comment.length > 20) { comment = comment.slice(0, comment.length - 6); isSkip = true; addVal = ( ๋๋ณด๊ธฐ... ); } return ( {name} {comment} {isSkip && addVal} ); } } export default Comments; ๋ค์ ์ฝ๋..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/Izf4Y/btriGleBlbr/z3kyvVkW64vKMw2jua3KD0/img.png)
๋ฌธ์ Route๋ฅผ ์ฌ์ฉํ์ฌ ๋ก๊ทธ์ธ ํ์ด์ง์์ ๋ฉ์ธ ํ์ด์ง๋ฅผ ์ด๋ํ๋ ๊ตฌํ ๊ณผ์ ์์, ๋ค์๊ณผ ๊ฐ์ด withRouter๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๋ฉ์๋ ํจ์ ๊ฐ์ฒด๋ฅผ props๋ก ๋๊ฒจ ์ฃผ๋ ๋ฐฉ์์ผ๋ก ์ ๊ทผํ์๋ค. goMain() ๋ฉ์๋์์๋ ์ธ์ ๊ฐ์ผ๋ก ๋ฐ์ ๊ฒฝ๋ก๋ก ์ด๋ํ ์ ์๋๋ก history ๊ฐ์ฒด props๋ฅผ ์ฌ์ฉํ์๋ค. import React, {Component} from 'react'; import Login from '../Login/Login'; import {withRouter} from 'react-router-dom'; class LoginPage extends Component { goMain(path) { this.props.history.push(path); } render() { return ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bpFRup/btriFibi0K2/MgCpR4zVUjK2Rd27roverK/img.png)
๋ฌธ์ import {createGlobalStyle} from 'styled-components'; import reset from 'styled-reset'; const GlobalStyles = createGlobalStyle` ${reset}; ( ... ) @import url('https://fonts.googleapis.com/css2?family=Lobster&display=swap'); @import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300;400&display=swap'); ( ... ) } `; export default GlobalStyles; ์ดํ๋ฆฌ์ผ์ด์ ๋ ๋ฒจ ์คํ์ผ์์์ ๊ณตํต ์น ํฐํธ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ๋ค์๊ณผ ๊ฐ์ด..
๋ฌธ์ ๋ฌธ์ ์ค๋ช ์์ฐ์ n์ด ์ฃผ์ด์ก์ ๋, n์ ๋ค์ ํฐ ์ซ์๋ ๋ค์๊ณผ ๊ฐ์ด ์ ์ ํฉ๋๋ค. ์กฐ๊ฑด 1. n์ ๋ค์ ํฐ ์ซ์๋ n๋ณด๋ค ํฐ ์์ฐ์ ์ ๋๋ค. ์กฐ๊ฑด 2. n์ ๋ค์ ํฐ ์ซ์์ n์ 2์ง์๋ก ๋ณํํ์ ๋ 1์ ๊ฐฏ์๊ฐ ๊ฐ์ต๋๋ค. ์กฐ๊ฑด 3. n์ ๋ค์ ํฐ ์ซ์๋ ์กฐ๊ฑด 1, 2๋ฅผ ๋ง์กฑํ๋ ์ ์ค ๊ฐ์ฅ ์์ ์ ์ ๋๋ค. ์๋ฅผ ๋ค์ด์ 78(1001110)์ ๋ค์ ํฐ ์ซ์๋ 83(1010011)์ ๋๋ค. ์์ฐ์ n์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, n์ ๋ค์ ํฐ ์ซ์๋ฅผ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์. ์ ํ ์ฌํญ n์ 1,000,000 ์ดํ์ ์์ฐ์ ์ ๋๋ค. ์ ์ถ๋ ฅ ์ nresult 78 83 15 23 ์ ์ถ๋ ฅ ์ ์ค๋ช ์ ์ถ๋ ฅ ์#1 ๋ฌธ์ ์์์ ๊ฐ์ต๋๋ค. ์ ์ถ๋ ฅ ์#2 15(1111)์ ๋ค์ ํฐ ..