반응형

1. 레지스트리로 수정 하는 방법
2. VS Code를 재설치해서 추가 작업 선택으로 적용 하는 방법

2번 방법에 대한 설명
아래와 같이 VS Code 설치시 체크 확인 후 설치.

설치 완료 후 탐색기 폴더 우클릭시 Open with code 확인.

반응형
반응형

1. 텔레그램 에서 botfather 검색 추가

2. 챗 방에서 '/start'

3. 챗 방에서 '/newbot'
순서대로 봇이름 및 username(아이디)을 입력하라고 함. 아이콘 바로 옆이 봇 이름, @로 시작하는 부분이 username

4. 토큰이 나오는데 기록해둔다.

파이썬에서 텔레그램 api를 이용하기 위해서는 python-telegram-bot 모듈을 사용
$pip install python-telegram-bot --upgrade

반응형
반응형

문제 설명
매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같이 특별한 방법으로 섞어 새로운 음식을 만듭니다.

섞은 음식의 스코빌 지수 = 가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맵지 않은 음식의 스코빌 지수 * 2)
Leo는 모든 음식의 스코빌 지수가 K 이상이 될 때까지 반복하여 섞습니다.
Leo가 가진 음식의 스코빌 지수를 담은 배열 scoville과 원하는 스코빌 지수 K가 주어질 때, 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 섞어야 하는 최소 횟수를 return 하도록 solution 함수를 작성해주세요.

제한 사항
scoville의 길이는 2 이상 1,000,000 이하입니다.
K는 0 이상 1,000,000,000 이하입니다.
scoville의 원소는 각각 0 이상 1,000,000 이하입니다.
모든 음식의 스코빌 지수를 K 이상으로 만들 수 없는 경우에는 -1을 return 합니다.
입출력 예
scoville K return
[1, 2, 3, 9, 10, 12] 7 2
입출력 예 설명
스코빌 지수가 1인 음식과 2인 음식을 섞으면 음식의 스코빌 지수가 아래와 같이 됩니다.
새로운 음식의 스코빌 지수 = 1 + (2 * 2) = 5
가진 음식의 스코빌 지수 = [5, 3, 9, 10, 12]

스코빌 지수가 3인 음식과 5인 음식을 섞으면 음식의 스코빌 지수가 아래와 같이 됩니다.
새로운 음식의 스코빌 지수 = 3 + (5 * 2) = 13
가진 음식의 스코빌 지수 = [13, 9, 10, 12]

모든 음식의 스코빌 지수가 7 이상이 되었고 이때 섞은 횟수는 2회입니다.


설계에 반영되지 않은 테스트 케이스가 존재. ;;


#include <string>
#include <vector>
#include <algorithm>

using namespace std;
int cnt = 0;
bool check(vector<int> vi, int K)
{
	bool bRet = true;
	for (int i = 0; i < vi.size(); i++) {
		if (K > vi[i]) {
			bRet = false;
			break;
		}
	}
	return bRet;
}

int solution(vector<int> scoville, int K) {
    int answer = 0;
    
    make_heap(scoville.begin(), scoville.end());
	sort_heap(scoville.begin(), scoville.end());

    while (2 <= scoville.size() ) {
        int sum = 0;
        if (2 <= scoville.size())
        {
            sum = scoville[0] + (scoville[1] * 2);
        }
        scoville.erase(scoville.begin());
		scoville.erase(scoville.begin());
        scoville.push_back(sum);
        make_heap(scoville.begin(), scoville.end());
        sort_heap(scoville.begin(), scoville.end());
        
        if (true == check(scoville, K)) {
            break;
        }
        cnt++;
    }
    if ( check(scoville, K) ) {
        answer = cnt+1;
    }
    else 
        answer = -1;

	/*for (int i = 0; i < scoville.size(); i++) {
		cout << scoville[i] << ' ';
	}*/
    
    return answer;
}
반응형
반응형

문제 설명
트럭 여러 대가 강을 가로지르는 일 차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 트럭은 1초에 1만큼 움직이며, 다리 길이는 bridge_length이고 다리는 무게 weight까지 견딥니다.
※ 트럭이 다리에 완전히 오르지 않은 경우, 이 트럭의 무게는 고려하지 않습니다.

예를 들어, 길이가 2이고 10kg 무게를 견디는 다리가 있습니다. 무게가 [7, 4, 5, 6]kg인 트럭이 순서대로 최단 시간 안에 다리를 건너려면 다음과 같이 건너야 합니다.

경과 시간 다리를 지난 트럭 다리를 건너는 트럭 대기 트럭
0 [] [] [7,4,5,6]
1~2 [] [7] [4,5,6]
3 [7] [4] [5,6]
4 [7] [4,5] [6]
5 [7,4] [5] [6]
6~7 [7,4,5] [6] []
8 [7,4,5,6] [] []
따라서, 모든 트럭이 다리를 지나려면 최소 8초가 걸립니다.

solution 함수의 매개변수로 다리 길이 bridge_length, 다리가 견딜 수 있는 무게 weight, 트럭별 무게 truck_weights가 주어집니다. 이때 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 return 하도록 solution 함수를 완성하세요.

제한 조건
bridge_length는 1 이상 10,000 이하입니다.
weight는 1 이상 10,000 이하입니다.
truck_weights의 길이는 1 이상 10,000 이하입니다.
모든 트럭의 무게는 1 이상 weight 이하입니다.
입출력 예
bridge_length weight truck_weights return
2 10 [7,4,5,6] 8
100 100 [10] 101
100 100 [10,10,10,10,10,10,10,10,10,10] 110

#include <string>
#include <vector>
#include <deque>

using namespace std;

static int giTime = 0;

int solution(int bridge_length, int weight, vector<int> truck_weights) {
   	int answer = 0;
	deque <pair<int, int> > qp;
	do
	{
		// 큐에 트럭 입력
		int sum = 0;
		for (int i = 0; i < qp.size(); i++) {
			sum += qp[i].first;
		}
		if (!truck_weights.empty())
			sum = sum + truck_weights[0];
		if ((weight >= sum) && (!truck_weights.empty()))
		{
			qp.push_back(make_pair(truck_weights[0], 0)); // 큐에 넣고
			truck_weights.erase(truck_weights.begin());// 대기 트럭에서 삭제
		}

		// 경과 시간 처리
		for (int i = 0; i < qp.size(); i++) {
			qp[i].second = qp[i].second + 1;
		}
		giTime++;

		// 경과 시간 만족시 pop 처리
		int qlen = qp.size();
		for (int i = 0; i < qlen; i++) {
			if (bridge_length == qp[0].second) {
				qp.erase(qp.begin());
			}
		}

		if ((truck_weights.empty()) && (qp.empty()))
		{
			break;
		}

	} while (1);
	answer = giTime;
	return answer+1;
}
반응형
반응형

자바 스크립트 타임존 별 날짜/시간 구하기.
코드는 파라미터 값에 따라 전세계 현재 시각을 구할 수 있으며, DST는 서머타임 즉 일광절약 시간.

<WorldTime.html>

<script type="text/javascript">

document.write('KST (한국 표준시):<br />',       getWorldTime(+9), '<br /><br />');
document.write('PST (태평양 표준시):<br />',     getWorldTime(-8), '<br /><br />');
document.write('PDT (태평양 표준시 DST):<br />', getWorldTime(-7), '<br /><br />');
document.write('EST (뉴욕 시간):<br />',         getWorldTime(-5), '<br /><br />');
document.write('EDT (뉴욕 시간 DST):<br />',     getWorldTime(-4), '<br /><br />');
document.write('CET (파리 시간):<br />',         getWorldTime(+1), '<br /><br />');
document.write('CEST (파리 시간 DST):<br />',    getWorldTime(+2), '<br /><br />');
document.write('CST (중국 표준시):<br />',       getWorldTime(+8), '<br /><br />');
document.write('UTC (세계 표준시):<br />',       getWorldTime(0),  '<br /><br />');

function getWorldTime(tzOffset) { // 24시간제
  var now = new Date();
  var tz = now.getTime() + (now.getTimezoneOffset() * 60000) + (tzOffset * 3600000);
  now.setTime(tz);

  var s =
    leadingZeros(now.getFullYear(), 4) + '-' +
    leadingZeros(now.getMonth() + 1, 2) + '-' +
    leadingZeros(now.getDate(), 2) + ' ' +

    leadingZeros(now.getHours(), 2) + ':' +
    leadingZeros(now.getMinutes(), 2) + ':' +
    leadingZeros(now.getSeconds(), 2);

  return s;
}

function leadingZeros(n, digits) {
  var zero = '';
  n = n.toString();

  if (n.length < digits) {
    for (i = 0; i < digits - n.length; i++)
      zero += '0';
  }
  return zero + n;
}

</script>

 

* 구글 스프레스시트 날짜&시간 스크립트
https://nuknukhan.tistory.com/65

 

[구글 스프레드시트 기초] 문서 자동화 구글 앱스 스크립트 시작 개요

[구글 스프레드시트] 문서 자동화 구글 앱스 스크립트 시작 개요 구글에서 제공하는 구글 앱스 스크립트(Google Apps Script : GAS)를 사용하여 구글 문서도구(구글 문서, 스프레드시트, 프레젠테이션 등)에서 문..

nuknukhan.tistory.com

 

반응형
반응형

vs2010 에서는 선택 글자 하이라이트가 기본 지원되지 않는다.
가독성이 떨어지기 때문에 확장 플러그인(plug-in)을 설치해야 한다.
플러그인을 직접 다운 받아 설치 할 수도 있고 확장 관리 메뉴에 들어가서 검색후 설치도 가능 하다.
1. 직접 다운로드
https://visualstudiogallery.msdn.microsoft.com/4b92b6ad-f563-4705-8f7b-7f85ba3cc6bb

 

Highlight all occurrences of selected word - Visual Studio Marketplace

OverviewQ & ARating & Review This extension will highlight all occurrences of a selected word in the current document and display a glyph on the left margin.This allows for fast visualization of a specific word used throughout the document, including ones

marketplace.visualstudio.com

2. vs 메뉴에서 온라인 검색 후 설치
확장 관리자 메뉴

Highlight all occurrences of selected word 검색 후 다운로드

반응형
반응형

이렇게 허무할 수가 있을까요.
Visual Studio 2013, 2015 버전대에서 설치 삭제 관련 다양한 문제를 겪고 계시죠?
각종 커뮤니티에 수많은 픽스 프로그램과 레지스트리를 건드리는 수많은 방법들이 난무합니다.

Visual Studio (2013~2015) 삭제 후 재 설치시 한 번 설치 경로(드라이브)를 바꿀 수 없는 문제 부터 설치 과정에 아래와 같은 공급자 오류등을 경험 할 수 있죠.

*****************************************************

 설치 실패

X. MIcrosoft Visual C++ 2013 x86 Minimum Runtime -

   12.0.21005

   지정된 트러스트 공급자가, 주제에 대해 지정된 형식을 지원하지

   않거나 열 수 없습니다.

*********************************************************

처음에는 위와 같은 메세지가 뜨다가 이것저것 부가적인 것들을 설치하고 다시 인스톨을 하니

아래와 같은 오류 메세지가 나며 역시 설치가 안됩니다.

********************************************************

설치 실패

X. Microsoft Visual Studio 2013 Devenv

   지정된 트러스트 공급자가, 주제에 대해 지정된 형식을 지원하지

   않거나 열 수 없습니다.

*******************************************************************

수많은 방법을 써봤는데 안된다 하면 아래 방법을 따르세요. ㅠㅠ
Visual Studio 완전 설치 후 재설치 방법인데, Visual Studio 완전 삭제는 아래 링크 프로그램을 이용하세요.
https://github.com/Microsoft/VisualStudioUninstaller/releases

 

microsoft/VisualStudioUninstaller

Visual Studio Uninstallation sometimes can be unreliable and often leave out a lot of unwanted artifacts. Visual Studio Uninstaller is designed to thoroughly and reliably remove these unwanted arti...

github.com

Extract TotalUninstaller.zip

Open an administrator command prompt.
Execute Setup.ForcedUninstall.exe
Type 'Y' to uninstall.

VisualStudioUninstaller 돌리고 나면, 2013,2015삭제 되고, 2013미만 2015초과 버전은 그대로 있는데, 상관 없습니다.
재설치시 *.iso 이미지 로드 설치를 했다면, 상관 없으나 압축을 푼 후 설치를 하셨다면, 알집,빵집 같은 프로그램으로 압축을 푼 폴더를 삭제하세요. 그리고 7z(7zip) 프로그램으로 새로 압축을 풀어서 setup을 진행하세요.

이틀이 날아가버리고 지금이라도 방법을 해결 보았네요.

한줄요약,
iso 압축 해제 프로그램을 7z로 바꿔보세요.

@내 경험 기록. 그리고 누군가에겐 도움이.

반응형
반응형

tensorflow.examples.tutorials 해당 예제 사용 후 아래 같은 오류 발생.

ModuleNotFoundError: No module named 'tensorflow.examples.tutorials'


github 헬프 페이지에서 아래 글 발견. 링크

더보기

I think the Tensorflow 2.0.0 can't support to import tensorflow.examples.tutorials. Beacause I found the packages of tensorflow-core/examples had no the module named by turorials under my environment of anaconda installation. Finally, I changed the Tensorflow version to 1.14.0 and it did work! I'm very confused.

아나콘다 터미널을 실행해서 아래 같이 tensorflow 삭제

pip uninstall tensorflow

14버전 새로 설치. 링크

pip install --upgrade tensorflow==1.14.0rc0

아나콘다 프로그램 종료 후 새로 실행

반응형
반응형

Sourcetree를 이용 깃허브 클론 수행 방법

Sourcetree에서 새로 만들기 'URL에서 복제 선택'
github의 저장소 <>Code 에서 Clone or download 클릭 후 HTTPS URL 복사 후 Sourcetree 저장소 복제의 원본 URL 에 붙여 넣기
목적지 경로 확인 후 '클론' 실행

반응형
반응형

Microsoft DirectX SDK (June 2010) 설치 중에 다음과 같은 에러 화면을 보게될 때가 있습니다.

이유는 DirectX SDK (June 2010) 설치시 redistributable package 버전은 Microsoft Visual C++ 2010 10.0.30319 라고 합니다. 헌데, 현재 아래 처럼 더 상위 버전이 설치 되어 있는 경우에 설치 에러화면을 띄웁니다.
해결 방법으로 상위 버전의 redistributable package 를 삭제 합니다.
Microsoft Visual C++ 2010 x86 Redistributable - 10.0.40219
Microsoft Visual C++ 2010 x64 Redistributable - 10.0.40219
각각 삭제 합니다.

삭제 후 DirectX 설치를 다시 진행해 보면, 아래 처럼 에러 화면 없이 정상 설치가 됩니다.

반응형

+ Recent posts