분류 전체보기 264

백준 [17779] 게리맨더링2

문제 출처 : https://www.acmicpc.net/problem/17779 삼성 역량테스트 2019년 하반기 기출문제이다. 푸는 방법은 여러가지가 있으며 대부분 그냥 for문을 사용하여 문제에 맞게 구현하였다. 범위에서 실수하지 말고 4중 for문으로 모든 경우에 문제에서 주어진 '구간 5' 부분을 채우고 나머지 부분을 채우는 구현문제이다. 필자는 '구간 5'부분을 채운다음 나머지 부분을 BFS탐색으로 채워 넣었는데 여기서 기본적인 for문의 구현방식보다 실행시간이 오래 걸렸다. 그리고 이 문제에서는 '구간 5'를 시작하는데 해당 모양이 이루어질 수 없는 상태라면 배제해도 된다. 그러니까 시작할 위치 (r,c)에 대해 d1,d2 값을 빼거나 더했을때, 범위를 벗어나는 경우는 무시하면 된다. 구현을..

[JavaScript] 페이지개발 : localstorage 변경

이전시간에 localstorage가 무엇인지 어떻게 만들고 작용하는지 알아보았다. 이번에는 새 localstorage안에 여러 값을 넣고 삭제해보는 작업을 해보자. 우선 코드는 아래와 같다. index.html 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 123 00:00 http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter 추가된 코드를 보면 우리는 form태그를 바탕으로 text를 넣는 페이지를 구성한다. 클래스 이름이 todoform과 todolist라는 태..

JavaScript 2019.12.06

[C/C++] #if #elif #endif 조건부 컴파일

오늘도 코드분석중 #if ... 등에 대한 내용을 보았다. 찾아보니 그리 어려운 내용은 아니었다. 한번 살펴보자 #Elif, #else및 #endif 지시문을 사용 하는 #if 지시문은 소스 파일의 부분에 대 한 컴파일을 제어 합니다. 라고 MS 공식 문서에 나와있다. 즉 컴파일을 할지 안할지 본다는 것이다. #if를 사용했으면 마지막에 #endif를 명시해줘야한다. #if를 사용할때, 비교 대상은 정수 상수여야 하며 실수나 문자열은 매크로와 비교할 수 없다. 정수값을 가지는 다른 매크로와 값을 비교하는 것은 가능하다. defined 연산자로 매크로의 존재 여부를 평가할 수 있다. #if defined(MACRO) 전처리문은 #ifdef MACRO와 완전히 동일한 문장이다. 그러나 다른 조건과 함께 매크..

C , C++, C# 2019.12.04

[C/C++] #define 매크로, #undef, size_t

코드 분석을 하면서 모르는 내용들에 대해 정리하고자 한다. #define 매크로문에 대해 알아보자. 이건 대부분 매크로 상수 라고 해서 변수가 아니지만 어떤 상수값을 정의하여 사용할 수 있다는 것 정도까지는 알고 있을것이다. 대게 #define [이름] [값] 모양으로 사용하고 있을 것이다. 또한, 이것이 함수처럼 인수를 가지도록 #define sum(a,b) (a+b) 이런 형태로 쓰인다는것을 알고있다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #include using namespace std; int a,b; #define sum(a,b) (a+b) #define Max_val 1000 int main() { a = Max_val + 1; b = sum(a, Max_val); co..

C , C++, C# 2019.12.03

[javascript] 페이지 개발 : localstorage

localStorage 크롬 개발자도구의 다음과 같은 장소에 localstorage가 있다. 이것은 간단하게 말해 '새로고침을 하여도 기존의 데이터가 이곳에 보관되어 있어 계속 사용할 수 있다' 라고 이해하면 편하다. 현재 여기에는 아무것도 저장되어 있지 않다. 이제 이것을 이용하는 페이지를 제작해보자. 먼저 CSS와 HTML이다. index.html 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 123 00:00 http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter index.css 1 2 3 ..

JavaScript 2019.11.18

[javascript] 페이지 개발 : 타이머제작

자바스크립트로만 간단한 크롬 웹 클론 코딩을 해보자. 타이머제작 우선은 웹 페이지를 만들 기본 html이 필요하다. 폴더에 html파일과 css 그리고 시계를 만들 js파일을 만들어준다. html파일 1 2 3 4 5 6 7 8 9 10 11 12 13 14 123 00:00 http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter js파일은 로 적용하고 태그안에 h1태그가 있다. 각 태그의 클래스 이름이 명시되어 있다. css파일 1 2 3 h1{ color:blue; } css파일은 h1태그에만 설정한다. h1태그의 색이 파란색으로 나타날 것이다. 이..

JavaScript 2019.11.14

[C/C++] move

C/C++ 코드 분석을 하면서 필요한 부분들을 공부해보고자 한다. 원문은 https://modoocode.com/227 에 잘 정리되어 있다. 모든 내용의 출처는 이곳이다. 원문내용을 보고 내용을 내 방식에 정리한 것이며, 원문의 출처에 자세하게 있다. C언어를 하면서 학부과정에 swap에 대한 방법이 있다. 보통 이 과정에서 객체 메모리가 3번이나 '복사' 된다. 다음 코드와 코드를 실행한 결과이다. 1 2 3 4 5 6 7 template void My_swap(T &a, T&b) { T tmp(a);//a는 lValue 라서 tmp의 복사 생성자가 호출, a가 차지하는 공간 만큼 메모리 할당 후, a의 데이터가 복사됨 //우리는 이것이 복사생성자가 아닌 이동생성자가 되길 원함. 하지만 a는 lVal..

C , C++, C# 2019.11.14

백준 [17822] 원판 돌리기

문제 출처 : https://www.acmicpc.net/problem/17822 2019 하반기 문제라고 해서 한번 풀어보았다. 이 문제는 시키는 대로 잘 구현해서 풀었다. 다른사람은 이런 시뮬레이션에 BFS를 함께 사용하여 푸는 경우도 봤지만, 필자는 그저 시키는대로 하나하나 확인하며 해결하였다. 문제는 이 문제에서 회전 후, 바뀌는게 없으면 전체 수의 평균값을 가지고 +1 혹은 -1 을 하는 경우에서 평균과 같은 값이면 그대로 두어야 하는것을 잘못하여 하루종일 걸렸다... 이걸 찾는대도 오래걸렸다... 문제에서 크다와 작다로 표기되어 있는데.. 암튼 같은 경우에는 그대로 두면 된다. 그리고 가로, 즉 한 원에 들어있는 수가 m개라는걸... 다 풀고 보았다. 4개로만 되어있길래 4개를 기준으로 풀었었..

[C/C++] 이동 생성자

C/C++ 코드 분석을 하면서 필요한 부분들을 공부해보고자 한다. 원문은 https://modoocode.com/227 에 잘 정리되어 있다. 모든 내용의 출처는 이곳이다. 원문내용을 보고 내용을 내 방식에 정리한 것이며, 원문의 출처에 자세하게 있다. My.h 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 #pragma once #pragma once class My { char *string_point; // 문자열 데이터 가리키는 포인터 int s_len; // 길이 int memory; // 할당용량 public: My(); My(const char *str); My(const My &str); // 이동생성자 My(My &&str..

C , C++, C# 2019.11.03

백준[17142] 연구소 3 (add. 연구소 2)

이 문제의 출처는 아래와 같다. 참고로 '연구소2'와 매우 비슷하다. https://www.acmicpc.net/problem/17142 https://www.acmicpc.net/problem/17141 먼저 이문제를 푸는데 필요한 것은 '조합' 을 먼저 작성하고 'BFS 탐색' 을 실시하여 탐색시 문제의 조건에 맞게 구현하면 해결할 수 있다. 먼저 입력을 받고 '조합'을 생각하자. 이 문제에서는 바이러스의 전체갯수 중에서 몇개를 선택하기 때문에, 바이러스의 위치를 저장한 vector를 DFS를 통해 조합을 구현하였다. DFS 함수에서 골라야 하는 갯수를 모두 선택하였으면 그 떄, BFS를 시작하면된다. 처음 시작할때, 시작하는 바이러스를 모두 큐에 넣어주고 -1로 초기화된 방문여부 확인값을 0으로 만..