#include <iostream>

using namespace std;

int minus1 = 0;
int zero = 0;
int one = 0;

bool is_same1(int **paper, int N, int x, int y) {
	int first_num = paper[x][y];
	for (int i = x; i < x+N; i++) {
		for (int j = y; j < y+N; j++) {
			if (first_num != paper[i][j])	return false;
		}
	}
	return true;
}

int divide_N_count(int **paper, int N, int x, int y) {
	if (is_same1(paper, N, x, y)) {
		if (paper[x][y] == -1)	minus1++;
		else if (paper[x][y] == 0) zero++;
		else one++;
		return 0;
	}
	for (int i = x; i < x+N; i = i+(N/3)) {
		for (int j = y; j < y+N; j = j + (N / 3)) {
			divide_N_count(paper, N / 3, i, j);
		}
	}
}

int main() {
	//입력
	int N;
	cin >> N;

	int **paper = new int*[N];
	for (int i = 0; i < N; i++) {
		paper[i] = new int[N];
	}
	for (int i = 0; i < N; i++) {
		for (int j = 0; j < N; j++) {
			cin >> paper[i][j];
		}
	}

	//실행
	divide_N_count(paper, N, 0, 0);

	//출력
	cout << minus1 << endl;
	cout << zero << endl;
	cout << one << endl;
}	

 

'컴퓨터 > 문제 풀기' 카테고리의 다른 글

백준 16955번 오목, 이길 수 있을까?  (0) 2019.05.20
10799번 쇠막대기  (0) 2019.05.13
2413번 비슷한 순열  (1) 2019.05.13
2309번 일곱 난쟁이  (0) 2019.05.13
백준 2688번 줄어들지 않아  (0) 2019.05.13

처음에는 안됐는데 문제는 overflow였다.

모든 걸 long long으로 바꾸니 해결됐다.

#include <iostream>

using namespace std;

int main() {
	int T;
	cin >> T;
	if (T < 1 || T>1000) {
		return 0;
	}
	int *values = new int[T];
	for (int i = 0; i < T; i++) {
		cin >> values[i];
		if (values[i] < 1 || values[i]>64) {
			return 0;
		}
	}
	for(int i = 0; i<T; i++){
		long long arr[10] = { 1,1,1,1,1,1,1,1,1,1 };
		long long n = values[i];
		
		for (long long i = 0; i < n - 1; i++) {
			for (int j = 1; j < 10; j++) {
				arr[j] = arr[j - 1] + arr[j];
			}
		}
		long long result = 0;
		for (int i = 0; i < 10; i++) {
			result += arr[i];
		}
		cout << result << endl;
	}
}

'컴퓨터 > 문제 풀기' 카테고리의 다른 글

백준 16955번 오목, 이길 수 있을까?  (0) 2019.05.20
10799번 쇠막대기  (0) 2019.05.13
2413번 비슷한 순열  (1) 2019.05.13
2309번 일곱 난쟁이  (0) 2019.05.13
백준 1780번 종이의 개수  (0) 2019.05.13

cuda 10.0
cuDNN 7.6.4
tensorflow-gpu 2.0.0

이렇게 설치할 예정입니다.

<<Nvidia 그래픽카드를 사용하고 있으셔야 cuda가속을 사용하실 수 있습니다.>>


1. cudo 10.0

https://developer.nvidia.com/cuda-10.0-download-archive

여기서 다운로드 받습니다.

설치는 더블클릭하면 알아서 됩니다.

cudo 9.0은 업그레이드도 있으니 받아서 계속 설치합니다.

아나콘다 환경을 사용하실 경우

conda install cudatoolkit==10.0

으로 편리하게 설치하실 수 있습니다.


2. cuDNN 7.5

https://developer.nvidia.com/cudnn

이녀석은 가입을 해야 받을 수 있습니다.

다운로드 하여 압축을 푼 이후

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0

여기에 붙여넣기 해서 옮겨줍니다.

마찬가지로 아나콘다 환경을 사용하신다면

conda install cudnn

으로 편리하게 설치하실 수 있습니다.


3. tensorflow-gpu 2.0.0

버전을 굳이 지정한 이유는

이후 버전에서는 tensorflow를 import하는 부분에서 에러가 나는 버그가 있기 때문입니다.

여러 버전을 시도해보았는데 1.10.0 버전이 가장 최신버전으로 오류가 나지 않았습니다(2019.03.24 기준)

2019.08.08 정정합니다 1.14.0 버전이 안정적입니다.

2019.12.02 tensorflow 2.0버전업으로 인하여 업데이트 합니다.

pip install --upgrade tensorflow-gpu==2.0.0

cmd에서 명령어를 이용하여 설치합니다.


이후 pycharm에서

import tensorflow as tf

로 import하면 정상적으로 동작됩니다.


겪었던 여러가지 오류

1. CondaHTTPError: HTTP 000 CONNECTION FAILED for url

openSSL을 설치하면 해결됩니다.

https://slproweb.com/products/Win32OpenSSL.html

위 사이트에서 openssl.exe를 다운받아 설치합니다.


2. return _load(spec) error

텐서플로우 버전을 낮추면 됩니다.

pip uninstall tensorflow-gpu

pip install --upgrade tensorflow-gpu==1.10.0

위 명령어를 이용하여 버전을 1.10.0으로 설치해보세요


3. no cuDNN

cuDNN이 없어서 발생하는 오류입니다.

tensorflow-gpu와 cuda toolkit만 설치할 경우 발생했었습니다.

위 설명을 이용하여 cuDNN을 다운받아 설치하면 해결됩니다.


오랫만에 글을 씁니다.


최근 라즈베리파이를 이용하여 WebDAP가 되는 클라우드 서비스를 만들어보았습니다.

처음에는 어려웠지만 하는 중 알게 된 것도 많고 재밌기도 하여 글을 남깁니다.


먼저 많은 사람들이 어떤 것을 설치하면 좋을지 고민할 것 같아 비교글을 남겨봅니다.


Pydio

처음에는 가장 설치해보고 싶은 녀석이였습니다.

다른 녀석들과 비교해서 제일 이쁘기도 하고 나름 확장성도 좋고

Python을 좋아하는데 이름이 비슷하기도 해서 좋았습니다.


하지만 알아보고 나니 설치가 망설여졌습니다.

예쁜만큼 리소스를 많이 먹고, 설치과정이 비교적 까다로웠습니다.

컴퓨팅 능력이 어느정도 되는 서버에서는 좋을 것 같아 보였습니다.


특징

1. 구 ajaxplorer에서 대대적인 개편이후 Pydio라고 이름을 바꿈.

2. PHP + SQL 조합

3. 리눅스, 윈도우 지원(다만 리눅스 + 아파치 조합에 가장 최적화 되어 있는 듯 하다)

4. WebDAP지원, 모바일 앱 무료

5. 오디오, 비디오 파일 재생 가능

6. HTTPS 강제하는 듯하다. 보안성이 좋다, 귀찮다(설정할게 하나 더 늘어난다)


장점

1. 이쁘고 화려하다.

2. 여러 플러그인으로 기능 확장이 용이하다.

3. 보안성이 좋다.


단점

1. 무겁다. 이 글에서 소개할 3개의 서비스중 가장 리소스를 많이 먹는다.

라즈베리파이와 같이 컴퓨팅 능력이 작은 녀석에게는 pydio를 깔면 속력이 정말 안나옵니다.


2. 동기화 도중 파일이 분실되는 경우가 있는 것 같다.

정확히 확인은 안되었지만 그런 사례를 얘기하는 사람이 종종 보였다.


■OwnCloud

구글 검색기준 가장 자료가 많이 나오는 가장 널리 쓰이는 설치형 클라우드 서비스입니다.

Pydio다음으로 예쁩니다. 리소스도 Pydio에 비하면 확연히 적게 먹습니다.


특징

1. PHP + SQL 조합

2. 윈도우도 가능하지만, 리눅스를 공식 지원(최신버전은 리눅스를 강제하는 듯 합니다.)

3. WebDAP지원, 모바일 앱 유료(?!)

4. 뭔가 연락처를 동기화하는 기능이 있다고 하지만 정확하게는 모르겠음.(쓰는 사람 말로는 굉장히 유용하다고 합니다.)

5. HTTPS를 지원(강제사항 아님)


장점

1. 강제사항이 아닌 HTTPS

2. 적당히 이쁘다.

3. 여러 플러그인으로 기능 확장이 용이하다.


단점

1. 그냥 쓰면 한글설정이 깨진다.

한국인한테 정말정말 절망적인 말이지만

컴퓨터 내부의 언어는 모두 영어기준으로 돌아가니 어쩔 수 없나봅니다.

무언가를 설정하고나면 한글을 쓸 수 있다고 알고 있습니다.


2. 이친구도 동기화 도중 파일이 분실되는 경우가 보였다.

아마도 PHP의 고질적인 문제인 듯 보인다.


3. 최신버전은 윈도우에서 설치할 수 없다.(리눅스만 가능)


■Seafile

지금 내가 설치해서 쓰고 있는 클라우드 서비스이다.

클라우드 시스템에 충실한 서비스이다. 다른 거 확장이 많이 없다.

겉모습은 심플하지만 못봐줄 정도는 아니다.

한국에서는 인기가 별로 없는 듯하지만(구글 검색에서 검색량이 제일 적다)

어째서인지 메뉴얼이 한국어로 번역되어 있다.

특이한점은 클라이언트에서 암호화한 이후 전송하는 기능이 있다.

덕분에 위의 2개보다 보안이 더욱 강력하다.


특징

1. C binary + Python(Django) + SQL 조합

위의 2개와는 다르게 코어부분이 C바이너리로 동작한다. 덕분에 정말정말 빠르다.

웹UI부분은 Django로 만들어놓았고 MySQL이나 SQLite와 연동하여 동작할 수 있다.


2. 윈도우, 리눅스, 라즈베리파이 공식 지원

라즈베리파이는 따로 버전을 만들어 공식지원한다.


3. 버전관리가 용이하다.

메뉴얼에도 나와있는 부분이지만 버전별로 폴더를 만들어 그안에 몽땅 설치하고 쓸 수 있다.

만약 최신버전에 문제가 생길경우 이전 버전 시스템이 담긴 폴더로 돌아가기만 하면 되서 복구가 쉽다.

물론 서비스 시스템만 옮겨가는 것이라 저장된 자료는 그대로 살아있다.


4. WebDAP지원, 모바일 앱 무료


5. 클라이언트 side 암호화 지원

서버로 파일을 보내기전에 클라이언트에서 먼저 파일을 암호화 시킨이후 서버로 보내기 시작한다.

다만 WebDAP를 이용할 경우 지원하지 않는다.

클라이언트 프로그램 사용을 권장


6. 저장되는 모든 자료는 암호화되어 소유자만 확인 가능하다.

최고관리자도 유저들이 어떤 자료를 가지고 있는지 확인할 수 없다.

다만 용량을 얼마나 쓰고 있는지 정도는 확인가능하다.

유저가 해당 파일, 폴더를 공유해줄 경우 열람할 수 있다.


장점

1. 빠르다.

역시 C언어는 위대하다.

라즈베리파이에서도 다운, 업속도가 10MB/s를 찍는다.


2. 보안성이 뛰어나다.

다른 서비스에는 없는 클라이언트 side 암호화가 있다.


3. 프라이버시를 보장받는다.

공유해주지 않는 이상 내 파일은 나만 볼 수 있다.


단점

1. 너무 심플한 UI


2. 많은 플러그인이 있지 않다.

전문가판 한정으로 웹에서 문서편집하기 정도밖에 찾지 못하였다.



결론

뭔가 적다보니 Seafile만 잔뜩 적게 되었네요 ㅋㅋ;;

클라우드 서비스에만 필요로 한다면 Seafile이 제일 좋은 것 같습니다.

NAS용도로 비디오, 오디오 스트리밍이랑 토렌트 기타 확장 등등을 생각한다면

OwnCloud와 Pydio가 좋아보입니다.

쓴다생각해놓고 깜박했네요;;

뭐 어때요ㅋㅋㅋ 아직 보러오는 사람 없는데ㅠㅠ

3. 멀티부팅 시작하기(XP에서)

아... 깜박했다

이거 시작할때 윈도우가 'XP냐' 'vista이상이냐' 에 따라서 설치법이 조금 다릅니다

에효....

본격 글쓰기량 x2 탄생(젠장할)

1. 파일 압축풀기

이 작업은 윈도우 설치하기 위한 파일을 나열하는 것입니다

그냥 압축만 풀면 되니까 긴장하지 마세요^^

가장 먼저



요런 녀석을 준비하셨다고 믿겠습니다

저는 window7 kn버전 64비트를 준비했습니다

아마 window7의 다른 버전이랑 window8도 상관 없을 겁니다


이제 저녀석의 봉인을 해제 시켜야 합니다(봉인해제!!)

저는 7zip을 선호하는 편이기에(그냥 취향입니다)

7zip다운을 걸어 놓겠습니다


32bit 사용자

7z920.exe


64bit 사용자

7z920-x64.msi


사진과 같이 Extract to ~~에 하시거나

Extract to Here 을 하셔도 됩니다


작업이 끝나면


보통 이렇게 나옵니다

1단계 성공!!


2. 파일 선별해서 옮기기

너~어무 쉬운 작업입니다

색칠 되어있는 녀석들 보이시죠?(boot폴더, sources폴더, bootmgr파일)

이 녀석들을 잘라내기 하셔서


C드라이브에 윈도우를 설치하실 거면

C드라이브 이외의 아무 드라이브에 붙여넣으시면 됩니다

예) D드라이브나 E드라이브

※주의

반드시 하드디스크의 루트위치에 있어야 합니다

무슨 말이냐 하면요

내 컴퓨터에서 D드라이브나 E드라이브를 더블클릭했을 때 보이는 그 화면!!!

거기에 놔두라는 거에요

왜냐고 묻지 마세요ㅋㅋ

설치를 진행시켜줄 프로그램이 그렇게 설정이 되어있어요

2단계도 성공!!


3. 설치파일 다운하기

이 파일은 제가 만든 것이 아니라

snoopy님이 만드신 것을 제가 퍼왔습니다

감사합니다^^ 그리고 죄송합니다.....


하드에서설치하기.zip


이걸 다운 받으시고 압축을 푸세요

그럼

이런게 만들어 질거에요

이녀석을 아까 드라이브루트에 두었던 폴더와 파일들과 같이 둡니다

그러니까 잘라내기 하셔서 아까 파일들 옮겼던 장소로 붙여넣기 하시면 되요


4. 설치파일 실행

말그대로 설치파일을 실행하는 것입니다

'하드에서설치하기' 폴더를 여시면


이렇게 구성되어 있는데 이중에서

색칠되어있는 저녀석

Install 이란 녀석을 더블클릭하시면 됩니다

그러면 몇초정도 알아서 작업을 한 뒤에

이런 창이 뜹니다

4단계 완료!!


5. 재부팅 및 윈도우 설치하기

이제 재부팅을 하시면

이런 장면을 보실 수 있습니다

(제가 캡쳐한게 아닙니다;;)


저기서 윈도우 7 설치하기 [EMS 사용 가능]

으로 방향키를 움직이셔서 엔터를 누르시고 설치하시면 됩니다


윈도우vista이상 버전부터는 정말 보기 좋게 설치인터페이스가 구성되어 있어서

설치하는 법은 생략하겠습니다

※Tip

가끔 포멧하시는걸 못찾는 분이 계시던데

포멧하실 드라이브를 클릭하신 뒤에(아마 파란색으로 바탕색칠이 될겁니다)

오른쪽 하단에 있는 '드라이브 옵션(고급)' 을 클릭하시면

포멧이라는 기능이 있습니다

왠만하면 포멧은 하시고 윈도우 설치하시는걸 권장합니다


5. 설치프로그램 삭제

이제 설치가 완료되었으니

아까 설치할때 옮겼던 프로그램들은 필요없잖아요?


과감하게 전부 삭제!!!

이제 끝입니다

2. 멀티부팅을 하기 위해 준비해야할 것

긴장하지마세요ㅋㅋㅋㅋ

간단해요

인터넷에서 검색만 하면 누구나 구할 수 있는 자료들이거든요


1. 운영체제.ISO

이것이 뭐시냐

이러시는 분이 있으실것 같아서 설명 들어갑니다

ISO 이미지(ISO image)는 국제 표준화 기구(ISO)가 제정한 광학 디스크의 압축 파일(디스크 이미지)이다.

-위키백과

간단히 말해서 CD파일입니다. 프로그램을 설치 또는 실행하기 위한 정보들을 담고 있는 파일로 보시면 됩니다.

많은 소프트웨어 업체들이 .iso 형식의 파일로 지원하고 있기때문에 상당히 많이 쓰이는 확장자라고 보시면 될겁니다.


자신이 설치하고 싶은 운영체제의 iso파일을 구하시면 됩니다

윈도우시리즈는 거의다 인터넷에 있습니다

굳이 가르쳐 드리자면 구글에서 윈도우XP 토렌트 와 같은 검색어로 검색하시면 됩니다


2. 스마트폰 내지는 인터넷을 할 수 있는 기기

왜 필요할까요?

이걸로 보면서 컴퓨터를 설치해야 하잖습니까?ㅋㅋㅋㅋ

글만 다보고 무작정 시작하시면

컴퓨터를 하나님 곁으로 보내는 실수를 할 수도 있습니다ㅋ


3. 상당한 시간

이거 꽤나 중요합니다

윈도우XP의 경우 시간이 상당히 오래걸리는 편이고

윈도우7도 최소40분은 걸립니다

둘다 설치하는 멀티부팅의 경우.......

2시간 정도 걸렸습니다ㅠㅠ


4. 드라이버프로그램

이거 상당히 중요해요

윈도우를 설치해놓고 아무 드라이버도 없으면

인터넷도 안되고 화질도 엄청구리고 사실상 사용할 수가 없게 됩니다

혹시 없으신 분을 위해서 다운로드 하게 해드립니다ㅋㅋ

Realtek 이란 프로그램인데요 인터넷을 하게 해주는 드라이버 입니다.

Vista.zip

Win7.zip

WinXP.zip

자신에게 맞는 운영체제껄 받아가시면 됩니다


그리고 하나 더

3DP_Chip_v1203.exe

이건 위에 있는 Realtek을 깔으신 뒤 실행해 주시기 바랍니다

3DP Chip이라는 프로그램인데요

인터넷을 기반으로 각 컴퓨터에 맞는 드라이버를 찾아서

다운로드페이지를 띄워주는 프로그램입니다

실행해보시면 최신버전 업데이트 어쩌고 뜨는데 무시하세요ㅋㅋㅋ

cancel 클릭하시고 뜨는 창에서

각각 CPU , 메인보드 , 그래픽카드 , 멀티미디어 이렇게 클릭하시고

인터넷창에 들어가셔서 시키는대로 다운받으신뒤 드라이버를 설치하시면 됩니다


5. 백업하기

백업하기에는 자신이 필요한 프로그램과 파일들을 미리미리 옮겨놓는거에요

예를들어 파티션이 C , D , E 이렇게 나눠져 있으시다면

운영체제를 설치할 C와 D에 있는 파일들을 E에 옮겨놓으시면 됩니다

그리고 자신이 설치했던 프로그램들 중에서

다시 사용할 프로그램의 목록과 설치프로그램을 미리미리 받아놓고 시작하시는게 좀더 편리합니다



자 이제 본론으로 들어가서 설치를 시작해 봅시당~~

1. 멀티부팅이란?

멀티부팅이란 한개의 하드디스크에 2개이상의 운영체제를 설치하는 것을 말합니다

멀티부팅을 하는 이유는 여러가지가 있는데요

전문가들은 테스트를 하기위해 여러운영체제를 돌기는 경우가 있고요


일반인들은 단순호기심에서부터 사용상 편의를 위해서 설치하는 경우가 많습니다

예를 들어 윈도우7을 사용하고 싶은데 ActiveX가 제대로 작동하지 않아서

인터넷 결제나 공인홈페이지에 접속이 안되는 분들이

윈도우7과 윈도우XP를 같이 설치하는 경우가 있습니다(바로 접니다ㅋㅋㅋ)


장단점에 대해 언급해 볼까요?

장점

1. 운영체제를 선택할 수 있다.

이게 제일 큰 장점이 아닐까요?ㅋㅋ

디자인은 윈도우7과 윈도우8이 나은데 사용은 윈도우XP가 더 편리하잖아요.....

그럴땐 선택적으로 사용하는거죠ㅋ

평소엔 윈도우7이나 윈도우8을 사용하고

꼭 필요할땐 윈도우XP를 사용하는 그런!!!


2. 집에 놀러온 친구에게 과시용으로 뙇!!!

뭐.... 딱히 이럴 일은 없겠지만요ㅋㅋ


단점

1. 설치가 어렵다

와..... 이건 진짜 어마어마한 단점이에요

저도 인터넷에서 이리저리 찾아보면서 스마트폰으로 보면서 막 따라해봤는데

실패만 6번.....

우히히~~ 분명히 설치를 끝냈는데 부팅이 안되네

다시 설치해야 하는구나......

윈7설치하고 드라이버 찾아서 다 깔고

다시 찾아보고 다시 시도하고 실패하고....

무한 루프~~

저도 3일걸림....ㅋ

But!!! 여기선 따라하기만 하면 할 수 있게

쉽게 쉽게 누구라도 할 수 있게

직관적이고 간략한 설명을 할 예정입니다^^


2. 하드디스크의 파티션을 나눠야 한다

파티션을 나눈다는 건 한공간이 2~3개로 분리 되는 겁니다.

거실에 벽하나 세워서 방두개 만드는 거랑 같다고 생각하시면 돼요.

실질 사용공간이 줄어든다는 무시무시한 결과가 나옵니다

용량부족으로 허덕일 가능성이 있으므로

반드시 자료저장용 파티션을 만드시거나 / 자료저장용 하드를 사시는 걸 추천해요

당신의 방대한양의 그.... 거시기 그거 있잖아요 당신의 컬렉션들ㅋㅋㅋ

그걸 위해선 하드사시는걸 추천합니다ㅋ

목차

1. 멀티부팅이란?

2. 멀티부팅을 하기 위해 준비해야할 것

3. 멀티부팅 시작하기

4. 참고자료 및 출처, 글쓰기 후기등등


수능도 끝났고 시간도 넘치길래

컴퓨터로 장난칠게 없나? 하고 찾아보던중

멀티부팅이라는 걸 알게되었습니다


와!!! 이거다!!!!

이러면서ㅋㅋㅋ

무려 3일을 소모하고

6번의 실패를 겪고나서야

윈도우7과 윈도우XP의 멀티부팅을 성공하게 되었습니다


6번의 얄팍한 경험들을 통해 얻게된 얄팍한 지식과

글을 쓰고 싶다는 무한한 욕구를 이기지 못하고 이렇게 글을 씁니다ㅋㅋ

+ Recent posts