분류 전체보기
[백준 17608번-C++] 막대기
http://acmicpc.net/problem/17608 {코드} #include using namespace std; int main() { int rods[100001], n; scanf("%d", &n); for (int i=0; i=0; i--) { if (max < rods[i]) { max = rods[i]; cnt++; } } printf("%d\n", cnt); } {설명} 이 문제에서는 모든 막대기를 일렬로 나열한 후 오른쪽에서 보기 때문에 어떤 막대기는 오른쪽에 있는 모든 막대기보다 크면 보이게 되는 것입니다. 우선, 가장 오른쪽의 막대기, 즉, 마지막 인덱스의 막대기는 무조건 보이므로 이를 max값으로 잡고 왼쪽으로 하나씩 이동하며 만약 이 max값보다 막대기의 길이가 더 크면 ma..
[파이썬] GCP를 이용한 유튜브 자막 프로그램 {K-UZA}
깃허브 K-UZA(이하 쿠자)는 저를 포함한 6명이 함께한 프로젝트로 GCP의 STT와 번역 기능을 활용한 유튜브 자막 추출 프로그램입니다. *이름의 유래는 K(Korean) 유(튜브)자(막 프로그램)입니다. 프로젝트 코드에 대한 설명은 생략하고, 프로젝트의 과정들에 대해 얘기해보도록 하겠습니다. - 약 4주간의 개발과정을 한 글에 적는 것이기 때문에 글이 길 수 있습니다. 코드를 보고 싶으신 분은 깃허브를 보시면서 하시길 바랍니다. 이 프로젝트는 저희에게 유용하게 사용될 수 있고 저희가 써본 적이 없는 것을 써보고 싶었습니다. 그래서 유튜브에 올라와있는 해외 튜토리얼 영상들을 좀 더 편하게 볼 수 있지 않을까? 하는 생각에 이런 프로젝트를 진행하게 되었습니다. 주제가 정해지고 나서는 먼저 어떤 서비스를..
[백준 9012번-C++] 괄호
http://acmicpc.net/problem/9012 {코드} #include #include #include using namespace std; int main() { int n; string s, ans = ""; stack st; cin >> n; while (n--) { cin >> s; stack st; for (const char &c : s) { if (c == '(') { st.push(c); } else { if (!st.empty()) { st.pop(); } else { st.push('('); break; } } } if (!st.empty()) { ans += "NO\n"; } else { ans += "YES\n"; } } cout
[백준 9093번-C++/파이썬] 단어 뒤집기
http://acmicpc.net/problem/9093 {코드} #include #include #include using namespace std; int main() { int n; string s; stack st; cin >> n; cin.ignore(); while (n--) { getline(cin, s); s += ' '; for (const char&c : s) { if (c == ' ') { while (!st.empty()) { cout
<라즈베리파이> 2. SSH, VNC, DuckDNS(무료 DDNS) 설정하기
저번 라즈베리파이 글에서는 라즈베리파이를 조립하고 우분투를 설치하였습니다. 이 라즈베리파이를 바로 모니터와 연결해서 사용할 수 있지만 제 경우에는 계속 모니터의 입력을 바꿔야 하고 메인 컴퓨터에서 복붙 하는 게 안 돼서 SSH와 VNC를 통해 라즈베리파이에 접속하기로 마음먹었습니다. SSH란? SSH는 Secure SHell의 약자로 다른 컴퓨터에 로그인하거나 원격 시스템에서 명령을 실행할 수 있도록 해 주는 프로토콜이다. 간단하게 말하면 외부에서 해당 컴퓨터의 터미널/CMD를 사용할 수 있는 것이다. 기본적으로 포트 22를 사용하며 암호화되어 있어 중간에 데이터를 가로채도 암호화된 문자만 노출된다. *참고: 생활코딩 SSH, 위키백과 우분투에서 SSH를 활성화하려면 openssh-server를 설치하면..
[백준 10828번 - C++] 스택
http://acmicpc.net/problem/10828 {코드} #include #include #include using namespace std; int main() { stack s; int n, tmp; string st; cin >> n; while (n--) { cin >> st; if (st == "push") { cin >> tmp; s.push(tmp); } else if (st == "top") { if (!s.empty()) { cout
[파이썬] 네이버 날씨와 뉴스 자동화 - 이메일로 보내기
라즈베리파이를 구매한 이유 중 하나가 계속해서 켜놓을 컴퓨터가 있었으면 좋겠다는 마음이 컸습니다. 물론 의미 없이 켜놓진 않을 테니 뭔가를 해야 했는데, 전 서버 구축과 자동화를 전부터 해보고 싶어서 오늘은 그 일환으로 자동화 프로그램을 만들었습니다. 전 밖에 나갈 때 날씨 확인하는 것을 자주 까먹어 다시 집에 들어와 옷을 껴입는다던지 우산을 챙긴다던지 하는 일이 종종 생깁니다. 근데 아침마다 이메일은 확인을 꼭 합니다.(미디엄에서 오는 뉴스레터가 꽤 흥미로운 내용이 많습니다.) 그래서 만약 이메일로 날씨와 뉴스가 전송된다면 어떨까?라는 생각을 했죠. 그렇게 해서 만들어진 것이 바로 MoT(Mail of Today) 입니다. 깃허브에 들어가서 코드를 보거나 다운로드하세요! 사용 언어: 파이썬 사용 라이브..
<라즈베리파이> 1. 라즈베리파이 4 구매 및 OS 설치
리눅스 사용도 해보고 서버도 열어볼 겸 라즈베리파이 4를 구매해봤습니다. 8GB 제품으로 구매를 했는데 팬이 생각보다 소음이 커서 다른 팬을 구매하거나 밤에는 서버를 끄든지 해야 할 것 같습니다.조용한 녹투아 팬을 구매했습니다. 맨 밑에 모델이 있습니다. 구매한 건 본체, 케이스, 마이크로SD카드, 카드 리더, MicroHDMI to HDMI 케이블입니다. 본체는 손바닥정도의 사이즈고 케이스 조립도 별로 어렵지는 않습니다. OS 설치는 라즈베리파이에서 제공하는 Raspberry Pi Imager로 SD카드와 USB를 포맷하고 OS를 깔 수 있습니다. 라즈베리파이 OS(구 라즈비안) 말고도 게임용 OS, 우분투 등의 OS도 지원합니다. 저는 64비트 OS를 사용하고 싶어서(라즈베리파이OS는 32비트) 우분..
[백준 19940번-파이썬/Python] 피자 오븐
http://acmicpc.net/problem/19940 {코드}for _ in range(int(input())): n = int(input()) buttons = [0]*5 sixties, tens, ones = n//60, (n % 60)//10, n % 10 if ones > 5: tens += 1 ones -= 10 if tens > 3: sixties += 1 tens -= 6 if tens = 0)] = abs(tens) buttons[4-(ones >= 0)] = abs(ones) print(*buttons){설명}먼저 각 버튼을 누를 횟수를 저장할 ..
[백준 19939번-파이썬/Python] 박 터뜨리기
http://acmicpc.net/problem/19939 {코드} def solution(): n, k = map(int, input().split()) sum_minimum = k*(k+1)//2 if sum_minimum > n: return -1 if (n-sum_minimum) % k == 0: return k-1 else: return k print(solution()) {설명} K개의 바구니에 들어있는 공의 개수가 1개 이상이며 전부 달라야 하기 때문에 공의 최솟값은 k(k+1)/2이다. 그림처럼 각 바구니가 순서대로 공의 개수가 결정된다면 전의 바구니보다 1개 더 많을 때가 최소이기 때문이다. 그렇다면 최솟값보다 공의 개수가 적으면 -1을 반환하면 된다. 공의 개수가 더 많을 경우 1부터 ..