반응형

최근 만들어본 WPF 텍스트출력에 쌍따옴표 ("), 일명 double quotes가 필요해서 사용가능한 방법을 찾아보다가

생각보다 간단하지만 외우긴 힘들어서 박제함

 

 

늘 그렇듯 스택오버플로우에도 해답이있다

+MSDN에도 있고

 

 

 

ms 공식 문서

 

문서와 스택오버플로우의 답변에 적혀있는 대로

 

싱글 쿼트를 사용하려면

  • '

쌍따옴표/더블쿼트를 사용하려면

  • "

를 사용해주면 된다

 

<!--사용 예시-->
<TextBlock FontSize="20" Text=" &quot; 입니다."></TextBlock>

 

위의 사용 예 처럼 입력하면 "입니다.가 출력된다

 

"를 사용하고 싶은 자리에 &quots; 를 사용해주면 됨

 

기타 특수문자를 사용하고 싶다면 아래 사이트 방문

 

 

 

참고사이트 : 

 

 

XML Character Entities and XAML - XAML

Describes how special characters are handled in XAML and general considerations for other XML concepts in XAML.

docs.microsoft.com

 

반응형
반응형

포트폴리오를 위해서 모른척했던 깃허브를 다시 작성해보려고 처음부터 시작하려는데

리드미 파일에 대한 작성부터 깔끔하게 하고싶어서 찾아본 크롬 마크다운 파일 뷰어

 

당연히 요즘같이 좋은 세상에는 온라인 마크다운 뷰어가 존재했다

크롬을 많이 사용하는 사람들은 기본적으로 한 두개 이상 사용한다는 크롬 확장 기능을 이용하면 된다

 

온라인 Md(마크다운) 파일 뷰어 설정하는 법

+크롬 확장 프로그램 사용하는 법

 

크롬 유저들은 당연히 구글계정 로그인이 되어있다는 가정하에 글을 작성함

 

 

먼저, 아래 사이트(크롬 웹 스토어)에 접속한다

 

 

 

Chrome 웹 스토어

Chrome에 사용할 유용한 앱, 게임, 확장 프로그램 및 테마를 찾아보세요.

chrome.google.com

 

 

 

좌측 상단의 검색창에 markdown viewer를 입력해 검색한다음, 맨 위에 위치한 Markdown Viewer 클릭

 

 

 

우측 상단의 chrome에 추가 클릭 시 아래의 확인 팝업 창이 나타나며 재차 확인을 묻는다

확장 프로그램 추가 클릭하자

 

 

 

 

 

크롬에 확장 프로그램인 Markdown Viewer가 추가되었다는 팝업이 나타난다

 

 

 

크롬에 확장파일이 추가되면, 햄버거 메뉴 아이콘이 있는 우측 상단에 블록 아이콘을 클릭하면 위의 이미지처럼

크롬에 추가된 확장프로그램 목록이 주르륵 나타나는데,

 

이 때 마크다운 뷰어의 오른쪽에 있는 점세개 아이콘을 클릭 후, 아래에 나타나는 확장 프로그램 관리를 눌러

로컬파일에 대한 접근을 허용해줘야 한다

 

 

 

 

 

위의 이미지에 표시된 화살표가 파란색으로 활성화 상태가 아니라면 클릭하여 파일에 대한 액세스를 허용해줘야한다

 

 

 

 

 

그러고 나서 다시 Markdown Viewer를 클릭함

 

 

 

 

클릭 시 나타나는 팝업창의 우측 하단의 ADVANCED OPTIONS 를 클릭하면

아래의 이미지가 나온다

 

 

이곳에서 크롬에서 .md파일을 오픈했을 때 실시간으로 파일을 수정하며 확인해볼 수 있도록

파일 경로를 설정해줄수있다

 

 

위의 이미지처럼 내 로컬PC에 위치한 .md 파일을 수정하기 위해서는

이미지에서 화살표가 가리키는 방향의 2가지를 잘 클릭해주면 된다

 

먼저 HTTPS:// 로 되어있는것을 선택하여 *:// 로 변경한다.

그리고 .md 파일이 위치한 경로를 복사 붙여넣기 하고 오른쪽의 ADD를 클릭하여

 

이렇게 로컬 파일의 위치를 저장해주면, 등록된 경로의 md파일을 오픈할 때마다,

리드미파일을 수정하면서 변경내용을 확인할 수 있다

 

https, http 접근에 대한 허용이 있는것을 보면

깃허브에 이미 푸쉬한 리드미파일에 대한 접근도 가능할것같다

 

 

 

 

크롬뷰어를 사용해 리드미 파일을 PC에서 오픈해본 결과

 

 

파일 경로를 등록안한 상태

로컬 파일의 위치를 등록하지 않은 파일을 오픈하면, 리드미 파일을 오픈해도 내용 그대로만 보인다

 

 

어드밴스드 옵션을 적용한 상태

로컬 파일의 위치를 advanced options에서 add 해주어서 접근 허용이 되어 리드미파일을 읽을수있다

 

 

 

반응형
반응형

2021 IGRUS Newbie Programming Contest

 

 

 

 

 

1시에 시험이 시작됐는데

늦잠+늦은 점심으로 너무 늦게참여해서 한문제만 풀고 끝났음

그래서 올리는 문제 풀이

 

 

 

 

맛있다고 생각하는 기준 (=출력해야할 맛의 순위)

홀수 (홀수가 여러개라면 그중 가장 큰 값의 홀수) > 가장 큰 값의 짝수

 

홀수 * 홀수 = 홀수

홀수 * 짝수 = 짝수

짝수 * 짝수 = 짝수

 

이므로 홀수가 하나 이상인 경우 모든 홀수를 곱셈을 해준게 가장 맛있는 칵테일이다

또는, 홀수가 하나도 없이 3개의 수가 모두 짝수인 경우, 세개의 값을 모두 곱한 것이 가장 맛있는 칵테일이다

 

홀수의 유무를 확인할 수 있게 참,거짓이 가능한 bool 형식 변수 odd를 선언해서 사용했다

 

a,b,c,의 음료를 입력받을 때는, 입력받을 때 마다, 홀수인지 판별 후

1개 이상이라도 홀수가 나오는 경우 odd를 true로 바꿀수있게 하였고,

 

출력해야할 ans에 입력받은 홀수를 곱해주었다

 

odd가 false인 경우는 입력받은 수 중 홀수가 없다는 뜻이므로 출력해야할 ans는 모든 수를 곱한 값(짝수)과 같다

 

 

 

#include<bits/stdc++.h>
using namespace std;

int main() {
	
	int arr[3];
	bool odd=false;
	int ans=1;
	
	for(int i=0; i<3; i++){
		cin >> arr[i];
		if(arr[i]%2 !=0){
			ans*=arr[i];
			odd=true;
		}		
	}
    
	if(odd){
		cout <<ans;	
	}
	else{
		cout<< arr[0]*arr[1]*arr[2];
	}	
	return 0;
}

 

 

남은 문제들은 앞으로 여유될때 하나씩 풀어볼 예정

 

 

 

출처 : www.acmicpc.net/problem/21312

 

21312번: 홀짝 칵테일

정진이는 특별한 음료를 가지고 있다. 음료들은 정수로 표현되는 고유 번호를 가지고 있다. 정진이는 이 음료들을 섞어 만든 칵테일을 만든다. 이 칵테일은 홀짝 칵테일이라 부르는데, 홀짝 칵

www.acmicpc.net

 

반응형
반응형

 

 

정수 2개(x,y)를 차례대로 입력 받은 뒤 (x,y)가 속하는 사분면의 위치를 출력해주는 문제

 

 

사분면

출처 : 위키백과

 

 

1~4 사분면은 위의 이미지로 판별이 가능하니까 x,y의 값으로 판별이 가능함

 

따라서 x를 먼저 입력받은 뒤, x가 +인지 -인지 확인한 다음

y를 입력받아 y가 +인지 -인지 확인하여 사분면을 출력했다

 

1사분면 (+x, +y)

2사분면 (-x, +y)

3사분면 (-x, -y)

4사분면 (+x, -y)

 

 

#include<bits/stdc++.h>
using namespace std;

int main() {
	int x,y;
	cin >> x;
	if(x<0){
		cin >> y;
		if(y<0) cout <<3;
		else cout << 2;
	}
	else{
		cin >> y;
		if(y<0) cout << 4;
		else cout << 1;
	}
	return 0;
}

 

 

 

출처 : www.acmicpc.net/problem/14681

 

14681번: 사분면 고르기

점 (x, y)의 사분면 번호(1, 2, 3, 4 중 하나)를 출력한다.

www.acmicpc.net

 

반응형
반응형

외부에서의 접속을 위한 기타 포트를 추가해줘야 할 때

인바운드 규칙을 설정해준다고 한다

 

간단하게 보면

인바운드 : 외부로부터 내 PC/서버에 접속이 가능하도록 설정하는 것

아웃바운드는 이의 반대로 이해하자

 

 

 

현재 인바운드 규칙은 22, 443 포트에만 가능하여

80포트에서의 접속도 가능하도록 추가하고자 했다

 

 

 

 

세팅은 간단하지만 위치를 찾는게 어려워서 과정을 적어본다

 

 

먼저, EC2의 인스턴스를 클릭하자

 

 

 

 

인스턴스 우클릭 후 보안 > 보안 그룹변경 클릭

 

 

 

 

우측 하단에 보이는 인바운드 규칙 편집 클릭

 

 

규칙 추가를 누른 뒤

원하는 포트를 지정해준다

 

 

 

 

 

 

출처 : aws.amazon.com/ko/premiumsupport/knowledge-center/connect-http-https-ec2/

 

HTTP 또는 HTTPS 포트에서 Amazon EC2 인스턴스에 연결

기본 네트워크 ACL에서 모든 인바운드 및 아웃바운드 트래픽을 허용합니다. 더욱 제한적인 규칙으로 사용자 지정 네트워크 ACL을 사용할 경우, 포트 80과 443에서 트래픽을 명시적으로 허용해야 합

aws.amazon.com

 

반응형

' > AWS' 카테고리의 다른 글

[aws] 윈도우에서 리눅스 터미널로 ssh 접속하는법  (0) 2021.08.30
반응형

 

윈도우 화면녹화 기능때문에 다운받게된 ffmpeg

윈도우에서 다운이 가능한 방식이 2가지가 있길래

다운받은 김에 별것아니지만 나중에라도 필요할까 싶어 다운로드 및 환경변수 세팅방법을 적어봄

 

 

+다운 받은 압축파일이 7z파일이므로 7z 압축 푸는법도 포함한다

 

 

 

다운로드 링크 : 

 

 

Download FFmpeg

If you find FFmpeg useful, you are welcome to contribute by donating. More downloading options Git Repositories Since FFmpeg is developed with Git, multiple repositories from developers and groups of developers are available. Release Verification All FFmpe

ffmpeg.org

 

 

 

1. ffmpeg 다운하기

 

위의 링크를 방문하면 아래 이미지와 같은 화면을 볼수있다

 

 

윈도우 클릭하면 보이는 윈도우 빌드가 2가지 있는데

나는 그 중 위에 있는 gyan.dev를 클릭했음

 

원래 윈도우 빌드는 총 3개였다고 하는데 이중 하나는 사라졌다고한다

 

 

 

다운 링크 : www.gyan.dev/ffmpeg/builds/

 

FFmpeg Windows Builds - gyan.dev

This page hosts packages containing binaries of ffmpeg, ffprobe and ffplay. These are compatible with Windows 7 and above. They may work on Windows Vista but that hasn't been tested. If you're downloading ffmpeg to support features in a program such as Kri

www.gyan.dev

 

 

 

 

4가지 방식으로 다운이 가능한 윈도우 빌드

윈도우7이상에서 호환가능하며 비스타에서는 작동을 하겠지만 테스트가 완료되지는 않았다고 하니

비스타 운영체제를 사용하는 경우 주의하자

 

 

스크롤을 좀 내려서 릴리즈 버전 다운 링크가 있는곳으로 이동하자

 

 

일반 ffmpeg.exe 파일이 필요한 사용자

다운링크 : www.gyan.dev/ffmpeg/builds/ffmpeg-release-full.7z

 

그외 헤더파일, dll파일 등 ffmpeg의 라이브러리가 필요한 개발자

다운 링크 : www.gyan.dev/ffmpeg/builds/ffmpeg-release-full-shared.7z

 

 

 

 

2. 7zip 압축 해제하기

다운받은 파일인 7z파일은 추가 압축해제를 해주는 파일이 필요하여

7-zip이란걸 다운했다

이 프로그램 외에도 압축해제가 가능한 파일이 있다고 하는데 이게 제일 먼저나와서 이거로 함

 

다운로드 링크 : www.7-zip.org/

 

7-Zip

7-Zip 7-Zip is a file archiver with a high compression ratio. Download 7-Zip 19.00 (2019-02-21) for Windows: Link Type Windows Size Download .exe 32-bit x86 1.2 MB Download .exe 64-bit x64 1.4 MB Download 7-Zip 21.01 alpha (2021-03-09) for Windows: Link Ty

www.7-zip.org

 

윈도우 버전에 맞게 다운로드 클릭

본인의 운영체제에 맞는 버전을 골라 다운하자

 

 

다운받은 파일을 실행하여 인스톨을 눌러 설치함

 

 

 

 

압축해제하고 싶은 7z 파일을 우클릭하여 위의 이미지와 같이 순서대로 7-zip, 압축풀기를 눌러

압축을 해제한다

 

 

 

 

나는 개발자버전으로 다운해서 압축해제하면 다음과 같다

 

 

 

3. 환경변수 설정하기

환경변수를 설정해두면 특정 파일이 설치된 경로가 아닌곳에서도 사용이 가능하다

 

 

 

 

내컴퓨터 > 우클릭 > 속성 클릭

 

왼쪽에 보이는 고급시스템 설정 클릭

 

환경변수 클릭

 

사용자변수의 Path 부분 더블클릭 또는 편집 클릭

 

 

 

 

 

새로만들기 클릭 후 빈칸에 ffmpeg의 폴더 경로(~\bin까지)를 복사하여 붙여넣기 후 확인을 클릭한다

 

내가 다운한 ffmpeg을 옮겨놓은 폴더는 다음과같다

C:\dev\ffmpeg\bin

 

 

 

 

변경을 확인 후 cmd를 켜서 ffmpeg -version 명령어를 입력하여 다운된 ffmpeg의 버전을 확인해보면

설치한 경로가 아니더라도 ffmpeg 사용이 가능해진것을 알수있다.

 

 

 

이제는 다양한 옵션을 사용해서 화면녹화 예제를 실행해보는 일만 남았다

 

 

반응형
반응형

 

 

 

문자열로 바꿔서 풀려다가 char를 정수형으로 바꾸는 atoi 사용법을 까먹어서

입력받은 숫자를 10으로 나눈 몫과 나머지를 반복사용해서 풀고싶었는데

이 방식은 입력받는 수의 범위때문인지 답이없어서 그냥 문자열을 int형변환 하는법을 다시 검색해서 수정함

 

 

스택오버플로우는 언제나 좋은 친구

 

간단한 문자-정수 형변환

아스키코드의 숫자는 48부터 시작하여 int로 형변환 후 48을 빼주어야 정확한 값을 얻을수있다

(아스키에서는 0=48이란 소리)

 

다른 방법으로는 문자 자체에서 아예 48을 빼주는 방법이 있다

 

 

 

위의 방법을 이용하여

두번째에 입력받은 수인 input을 아예 string으로 입력받은 다음 하나하나 정수로 바꿔서 더했다

 

#include <bits/stdc++.h>
using namespace std;

int main() {
	int cnt;
	string input;
	
	cin >>cnt;
	cin >> input;
	
	int ans=0;
	char c;
	int tmp;
	for(int i=0; i<cnt; i++){
		c= input[i];
		tmp =(int)c-48;
		ans+=tmp;
	}
	cout << ans;
	return 0;
}

 

 

문자열 대신 char형 배열을 이용한 다른 방법

#include <bits/stdc++.h>
using namespace std;

int main() {
	int cnt;
	char c[101];
	cin >>cnt;
	
	int ans=0;
	
	for(int i=0; i<cnt; i++){
		cin >> c[i];
		ans+=(int)c[i]-48;
	}
	
	cout << ans;
	return 0;
}

 

 

출처 : www.acmicpc.net/problem/11720

 

11720번: 숫자의 합

첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다.

www.acmicpc.net

참고사이트 : stackoverflow.com/questions/5029840/convert-char-to-int-in-c-and-c

 

Convert char to int in C and C++

How do I convert a char to an int in C and C++?

stackoverflow.com

 

반응형
반응형

 

 

 

일단 기다리는 시간을 최소화해야하므로 입력받은 수를 벡터에 저장 후, sort STL을 이용해 정렬한 다음

반복문을 사용해 각 벡터의 값인 v[i]의 값을 계속 축적해가면서 출력할 변수인 ans에 더해줬다

 

입력이 3 1 4 3 2 인 경우

1 2 3 3 4로 정렬을 하고 더하게 되면

1

1+2

1+2+3

1+2+3+3

1+2+3+3+4

 

의 값이 필요하므로

벡터 v의 i번째의 값을 더할때는 i-1까지의 덧셈이 모두 필요하므로

v[i]까지의 합을 더해주는 변수 tmp와 이 합들을 모두 더해줄 ans 변수를 사용했다

처음에는 변수 하나만으로 표현하려고 해서 계속 벡터의 값을 다 더하기만한 13만 찍어냈는데

ans 변수 하나를 추가하니 바로 해결돼버림

 

 

#include <bits/stdc++.h>
using namespace std;

int main() {
	vector<int> v;
	int cnt = 0;
	int tmp=0;
	cin >> cnt;
	for(int i=0; i<cnt; i++){
		cin >> tmp;
		v.push_back(tmp);
	}
	
	tmp=0;
	int ans=0;
	sort(v.begin(), v.end());
	
	for(int i=0; i<cnt; i++){
		tmp+=v[i];
		ans+=tmp;
	}
	cout <<ans;
	
	return 0;
}

 

덧셈부분을 좀더 단순화해본 코드

 

1

1+2

1+2+3

1+2+3+3

1+2+3+3+4

 

v[0]은 총 5번 더하고 v[1]은 4번더하고 ... v[4]는 한번 더해서 반복되는 덧셈 과정을 곱셈으로 바꿔줌

 

#include <bits/stdc++.h>
using namespace std;

int main() {
	vector<int> v;
	int cnt = 0;
	int tmp=0;
	cin >> cnt;
	for(int i=0; i<cnt; i++){
		cin >> tmp;
		v.push_back(tmp);
	}
	int ans=0;
	sort(v.begin(), v.end());
	
	for(int i=0; i<cnt; i++){
		ans += (cnt-i)*v[i];
	}
	cout <<ans;
	
	return 0;
}

 

 

출처 : www.acmicpc.net/problem/11399

 

11399번: ATM

첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000)

www.acmicpc.net

 

반응형
반응형

 

 

입력이 총 9개의 자연수이므로 비교할 값 변수인 tmp를 0으로 초기화 해서 매번 입력받아 비교해서

들어오는 입력값이 이전에 저장해놓은 값보다 크면 그때마다 몇번째 수인지 저장할 인덱스와 최대값을 바꾸어준다

 

 

#include<bits/stdc++.h>
using namespace std;

int main() {
	
	int tmp=0;
	int index=0;
	int input;
	
	for(int i=0; i<9; i++){
		cin >> input;
		if(tmp < input){
			tmp = input;
			index = i+1;
		}
	}
	
	cout << tmp<<"\n"<<index;
	
	return 0;
}

 

 

출처 : www.acmicpc.net/problem/2562

 

2562번: 최댓값

9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어

www.acmicpc.net

 

반응형
반응형

 

 

 

 

 

 

5

OOXXOXXOOO

OOXXOOXXOO

OXOXOXOXOXOXOX

OOOOOOOOOO

OOOOXOOOOXOOOOX

 

 

입력의 형태는 크게 횟수와 문자열의 모음으로 문자열 벡터를 생성해서 5번 반복해서 생성한 벡터에 차례대로 입력함

이중 for문을 사용해서 벡터 값에 있는 문자열을 하나씩 꺼내서

문자열 인덱스로 접근 후 각 값이 O인지 X인지 확인 후 점수체계를 만들어줌

 

 

str O O X X O X X O O O
ans 1 2 0 0 1 0 0 1 2 3

 

위의 표를 참고해서 보면 연속되어 퀴즈를 맞힌 OO, OOO의 경우 얻을수있는 점수는 1점이 3개가 아니라

연달아 맞힘으로 인해 점수가 연속해서 맞힌 갯수만큼 증가하게된다

따라서 OO = 3점, OOO = 6점임을 알수있음

 

나는 총점과 str[j]에 해당하는 점수를 각각의 변수로 따로 선언해서 과거 문제를 맞춘 이력을 기억하도록 했다

ex) O : score++;

X : score=0;

 

연속해서 맞히다가 틀릴 경우 연속했던걸 기억해둘필요 없으므로 score를 0으로 리셋해준다

 

 

 

#include<bits/stdc++.h>
using namespace std;

int main() {
	int ans;
	int score;
	
	vector<string> v;
	string str="";
	
	int cnt;
	cin >> cnt;
	
	for(int i=0; i<cnt; i++){
		cin >> str;
		v.push_back(str);
	}
	
	for(int i=0; i<cnt; i++){
		ans=0;
		score=0;
		str = v[i];
		
		for(int j=0; j<str.length(); j++){
			if(str[j] == 'O'){
				score++;
				ans+=score;
			}
			else {
				score=0;
			}
		}
		cout<<ans<<"\n";
	}

	return 0;
}

시간 0ms

 

 

 

좀더 줄여본 방법

벡터에 따로 저장 안하고 입력과 동시에 입력받은 문자열 판별해서 점수출력하기

 

#include<bits/stdc++.h>
using namespace std;

int main() {
	int ans;
	int score;
	
	string str="";
	
	int cnt;
	cin >> cnt;
	
	for(int i=0; i<cnt; i++){
		cin >> str;
		
		ans=0;
		score=0;
		
		for(int j=0; j<str.length(); j++){
			if(str[j] == 'O'){
				score++;
				ans+=score;
			}
			else {
				score=0;
			}
		}
		cout<<ans<<"\n";
		str="";
	}

	return 0;
}

시간 4ms

코드 길이랑 메모리는 조금 줄었고 시간은 비슷하거나 미세하게 차이가 있는듯

 

 

 

 

 

출처 : www.acmicpc.net/problem/8958

 

8958번: OX퀴즈

"OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수

www.acmicpc.net

 

반응형

+ Recent posts