[백준] 2630번 - 종이의 개수
·
알고리즘/재귀
[2630] 종이의 개수[Baekjoon 문제 링크]재귀를 사용하는 문제인 2630번을 풀어보았다.  우선 종이를 자르는 함수(재귀 함수)를 만들어야 하는데, 나는 cutPaper라는 이름으로 만들었다.cutPaper 함수 안에서는 종이를 구성하는 숫자가 모두 동일한지 확인하여 아래와 같이 처리해줘야 한다.종이가 모두 같은 수로 되어 있는 경우(same) : 종료 조건이다. 빈도수만 증가시킨 후 return한다.같은 수로 되어 있지 않은 경우(!same): 현재의 색종이를 4분할 한 후(행 2등분, 열 2등분) 각각에 대해 다시 cutPaper 함수를 호출한다. 자세한 구현 아이디어는 아래 글에 작성해 놓았다. 코드가 진짜 똑같아서 구현 아이디어도 완전 동일하다. 단 분할 개수만 다르다! (아래 글의 문..
[재귀] 백준 1780번 - 종이의 개수
·
알고리즘/재귀
[1780] 종이의 개수Baekjoon 문제 링크오늘은 재귀를 사용하는 문제를 풀어보았다.문제 설명먼저 문제를 분석해보자.우선 종이를 자르는 함수(재귀 함수)를 만들어야 하는데, 나는 cutPaper라는 이름으로 만들었다.cutPaper 함수 안에서는 종이를 구성하는 숫자가 모두 동일한지 확인하여 아래와 같이 처리해줘야 한다.종이가 모두 같은 수로 되어 있는 경우(same) : 종료 조건이다. 빈도수만 증가시킨 후 return한다.같은 수로 되어 있지 않은 경우(!same): 현재의 색종이를 9분할 한 후(행 3등분, 열 3등분) 각각에 대해 다시 cutPaper 함수를 호출한다.예시 분석예시로 주어진 input과 output을 바탕으로 어떤 식으로 코드가 작동하는지 알아보자아이디어처음에는 입력으로 받은..
[#5] 가변 레이아웃
·
카테고리 없음
em을 이용해 상대적인 크기의 폰트를 적용할 때처럼, 레이아웃에도 비율에 기반한 개념을 적용할 수 있습니다.부모 요소의 크기에 비례해 자식 요소의 크기가 변하는 방식은 가변 레이아웃을 만들 때 흔히 사용되는 방식입니다.%% 단위는 백분율 값을 나타냅니다. 보통 부모 요소와의 상대적 크기를 지정할 때 사용합니다. 너비와 높이, 여백 뿐 아니라 글자 크기에도 사용할 수 있습니다.
뷰포트 단위: vw / vh / vmin / vmax
·
카테고리 없음
지난 시간에 정리한 em과 rem의 경우, 주변 상황에 따라 그 크기를 달리할 수 있는 가변성을 지니고 있지만,브라우저나 기기 화면의 크기에 따라 달라지는 단위는 아닙니다. 따라서 진정한 반응형 단위라고 할 수 없습니다. 가변성이 있으나 반응하지는 않는다!반응하는 단위들아래의 단위들은 뷰포트 크기를 기반으로 값을 계산하여 크기를 결정하는 가변 단위입니다.vw뷰포트의 너비를 기반으로 vhvminvmax
상대 단위 em, rem
·
카테고리 없음
css 입문 과정에서 가장 많이 사용하는 단위는 px(픽셀)입니다. 픽셀은 절대 길이 단위입니다.어떤 상황에서도 동일한 값을 유지하므로 가변성이 없습니다. 반응형 웹을 만들기에는 적합하지 않습니다.반면 em과 rem은 박스에서 텍스트 크기를 조정할 때 사용하는 상대 단위입니다.em은 부모 요소의 글꼴 크기를, rem은 루트 요소의 글꼴 크기를 의미합니다.각 단위는 주어진 크기의 배수를 요소 크기로 설정하는 단위입니다.이 때 루트 요소란 요소를 말합니다. 루트 요소의 글자 크기 기본값은 16px입니다. 자식 요소의 1em은 20px! 자식 요소의 2em은 40px!+) 추가적으로 em 으로 내/외부 여백 크기를 정할 때는 자기 자신의 글자 크기를 기준으로 하게 됩니다! https://www.youtub..
반응형 웹 / 뷰포트의 개념
·
카테고리 없음
반응형 웹이란?반응형 웹이란,다양한 기기나 브라우저의 크기에 맞게 구성이나 크기를 변경해가며 반응하는 웹문서 또는 이를 위해 사용하는 기법을 말합니다.네이버의 경우, 모바일 환경과 데스크톱 환경을 분리하여 화면 구성을 각각 다르게 했는데요, 이 방법은 기기의 유형이 다양해짐에 따라 한계가 드러날 수 밖에 없는 방법입니다.왜냐하면 새로운 기기가 등장할 때마다 기기에 맞는 콘텐츠를 계속 생성해 나가야하기 때문이죠!그렇기에, 사용하는 기기에 맞게 알아서 맞춰지는 사이트, 즉 반응형 웹사이트를 개발하는 것이 가장 바람직합니다.반응형 웹사이트의 핵심 키워드는 가변성입니다.뷰포트란?반응형 웹을 만들기 위해서는 뷰포트의 개념을 알아야 합니다!뷰포트(viewport)란 현재 화면에 보여지고 있는 영역을 의미합니다.기기..
input() 과 sys.stdin의 차이
·
알고리즘/Week 1: 입출력 문제
[문법] input과 sys.stdin 백준의 기본 입출력 문제를 풀고, 상위 100 안에 드는 다른 사용자들의 코드를 참고한 결과, 상위권에 있는 분들이 input()대신 sys 모듈을 사용한다는 걸 알게 되었다. 왜일까? 1) input() 대신 sys.stdin.readline()을 사용하는 이유 input()의 속도가 느리다. 반복문으로 여러 줄을 입력 받아야 하는 경우 input()으로 입력을 받으면 시간 초과가 발생할 수 있다. sys 모듈의 stdin을 사용하면 실행 속도가 빨라진다. 2) input과 sys.stdin의 차이점 input() 공식 문서 파이썬 내장 함수이다. 입력에서 한 줄을 읽고, 이를 문자열로 변환한다. 이때 후행 개행문자(줄바꿈)는 제거하고 반환한다. 입력이 끝나 EO..
코드업 1071 : 0 입력될 때까지 무한 출력하기1
·
카테고리 없음
이 문제의 조건 : while( ), for( ), do~while( ) 등의 반복문은 사용할 수 없다. -> 그래서 이것도 recursion으로 풀었다. #include /* 정수가 순서대로 입력된다. -2147483648 ~ +2147483647, 단 개수는 알 수 없다. 0이 아니면 입력된 정수를 출력하고, 0이 입력되면 출력을 중단해보자. while( ), for( ), do~while( ) 등의 반복문을 사용할 수 없다. */ void recursion(int n) { if (n == 0) {//0이 입력되면 recursion함수를 탈출한다. return; } //입력된 수가 0이 아니라면, printf("%d\n", n);// 1. 출력 int new; scanf("%d", &new);// 2..
코드업 1094번 문제 : C언어 배열 요소 거꾸로 출력하기
·
카테고리 없음
이 문제의 경우 입력으로 1) 번호의 개수 , 즉 배열의 크기 n (n의 범위는 1 ~ 10000) 2) 배열에 저장될 n개의 숫자들 (숫자들의 범위는 1 ~ 23) 이 들어온다. 이 문제는 두가지 방법으로 풀 수 있다. 1) malloc / calloc으로 공간을 할당받아 사용하기 배열의 크기를 입력 받고 그 크기에 딱 맞게 배열을 만들면 좋을텐데 배열은 아래와 같은 방식으로 만들 수 없다. int n; scanf_s("%d", &n); int array[n] = {}; 그 대신 문제에서 배열의 크기가 1~10000까지라고 했으므로 걍 최대 크기인 10000에 맞춰 배열을 만들고 풀면 된다... 근데 만약 배열의 크기가 1,5,20 이렇다면...? 뭔가 공간 낭비라는 생각이 들었다. malloc과 ca..
CodeUp 1090 : 등비수열 함수 만들기
·
카테고리 없음
1. 첫 번째 풀이 방법 : recursion함수 사용하기 for문을 사용하여 등비수열을 구할 수도 있지만, 배운지 좀 돼서 가물가물한 recursion 함수를 복습하기 위해서 recursion함수를 사용하여 코드를 짰다. 1090번 문제 같은 경우 int의 범위인 -21억~21억 을 넘어서는 출력도 존재하기 때문에 함수의 return값은 long long타입으로 정해주었다. 파라미터로 a, r, n을 만들어주었고, 어규먼트로 키보드를 통해 입력받은 a, r ,n이 전달되도록 하였다. #include long long recursion(int a, int r, int n) { if (n == 1) { return a; } return r * recursion(a, r, n - 1); } int main(..
recursion함수- (1~n까지의 합/ factorial 함수 구현하기)
·
카테고리 없음
더보기 chap.2 순환 (recursion) recursion의 정의 :자기가 자기를 부르는 것 (재귀 호출) function 호출과 다른 개념 1부터 n까지의 합을 구해 반환하는 함수 #define _CRT_SECURE_NO_WARNINGS #include /* 1-n까지의 합을 구해 반환하는 함수 */ int sumToN(int n) { int sum = 0; // 합 결과를 저장하는 변수 int i; for (i = 1; i 3+2+1+0로 바뀜 } return n + sumToN_recursion(n-1); } int main() { //c언어에는 main함수가 필수! -main에서 다른 함수를 호출하면서 코드가 시작됨 int result; result = sumToN_recursion(10);..