목록도서관 책 종류 (107)
컴퓨터공학 💻 도서관📚
이 문제에서 가장 어려운 거 : 입력을 어떻게 받을 것인가? + 어떻게 저장할 것인가? import sys # 밑에서 설명 scenario_number = 0 while True: # True 대문자로 써야 함 n = int(input()) if n != 0: scenario_number += 1 name = [sys.stdin.readline().strip() for i in range(n)] # 밑에서 설명 list = ['?']*n # 리스트 곱셈 for i in range(2*n - 1): a, b = map(str, input().split()) # 밑에서 설명 tmp = int(a) - 1 if list[tmp] == '?': list[tmp] = b elif list[tmp] == 'A' o..
예전에 이런 생각을 하곤 했다. 코딩을 한다는 거란 이런 것이다! 라고 사람들에게 쉽고 간단하게 말할 수 있는 방법이 있을까? 이런 생각을 예전에 했었는데 최근에 든 생각을 끄적여 본다면 코딩은 '자동화 공장을 만드는 일' 같다는 생각이 들었다. 이 코드가 어떤 값을 대입해도 내가 원하는 답을 도출할 수 있도록자동화된 공장을 만들기 위해 계속 코드를 고치는계속 공장에 손을 대서 코드를 완성시키는공장을 완성시키는 일인 것 같다.
#include int i, temp, check, cnt = 1;int main(void){ int series; scanf("%d", &series); if (series == 1) // 첫 번쨰 답 666은 따로 뺌 { printf("666"); return 0; } for (i = 667;; i++) // 그 다음 작은 수 667부터 1씩 증가시킴 , 종료조건 안 씀 { temp = i; // i의 값으로 잠시 연산을 해야 해서 임시변수 temp 에 i 값 담기 check = 0; while (temp) // 밑에서 설명 { ..
def find(N): # 함수는 위에서 정의하고 오는 거 잊지 말기 cnt = 1 num = 666 # num은 첫 번째 값으로 고정 / 초기화 while N != cnt: # 검사단계 num += 1 # 파이썬은 증감연산자 ++ 없음 num = str(num) # str() 함수로 문자열 자료형으로 바꾸기 if num.count('666') != 0: # count() 함수로 666 이 있는지 확인하기 cnt += 1 #( count 함수 : 괄호 안의 값이 몇개 있는지 알려줌 ) num = int(num) # n..
가끔 velog를 들어가서 글을 보면 내가 아직 많이 부족하구나...라는 생각이 든다 그곳에서 글을 쓰는 많은 사람들은 현직 개발자이거나 취업준비생이거나 인프콘 같은 강연이나 세미나를 가시거나 한다 그래서 가끔 지레 겁먹고 기죽을 때가 있다. 아직 난 대학 졸업도 안 했고 대학교 2학년도 아직 안 마쳤고 전역도 안 했는데 굳이 기 죽을 필요가 없는데 말이다. 그걸 알고 있는데도 가끔은 기죽을 때가 있다. 지금 와서 생각해보면 개인 블로그를 tistory에서 하는 것도 velog에서 하는 것보단 글 쓰는 마음이 편해서인 것 같다 이럴 땐 한 번 기 죽고 난 후 몇 초 지나고 이렇게 생각한다 야 기죽지마 너도 할 수 있어 임마 가끔은 이렇게 터프하게, 조금은 단순하게 생각하고 공부할 필요가 있는 것 ..
문제 : 1이 될 때까지 어떤 수 N이 1이 될 때까지 다음 두 과정 하나를 반복적으로 수행하려고 한다. 단, 두 번째 연산은 N이 K로 나누어 떨어질 때만 선택할 수 있다. 1. N에서 1을 뺀다. 2. N을 K로 나눈다. 즉, 다시 말해 K로 나누어 떨어지는 수가 될때까지 1씩 빼는 거다. N과 K가 주어질 때 N이 1이 될 때까지 1,2번 과정을 수행해야 하는 최소 횟수를 구하는 프로그램을 작성하시오. 문제 해결 아이디어 주어진 N에 대하여 최대한 많이 나누기를 수행하면 최적의 해를 보장한다. K가 2 이상이기만 하면, K로 나누는 것이 1을 빼는 것보다 항상 빠르게 N을 줄일 수 있다. n, k = map(int, input().split()) # N, K를 공백을 기준으로 구분하여 입력 받기 r..
오늘 떠올랐던 생각들을 정리해보려고 한다. (참 나도 고질병이다.... 이런 생각들이 멈추질 않으니....) 지금 현재도 그렇고 전역 후 미래의 나의 삶은 과거와는 다르게 훨씬 더 많은 것을 배우는 삶을 살아보고 싶다. 책을 통해 인문학도 배우고 부동산 투자도 배우고 알고리즘, 프로그래밍도 배우고... 그전까지 마음의 상처로 인해서 못했던 것들 무기력하고 게으름으로 인해 안 했던 것들을 더 많이 접해 보고 더 많이 느껴보고 더 많이 깨닫고 싶다. 위의 3가지가 가장 배우고 싶고 가장 알고 싶은 거라면 그 외의 자잘한 것들은 셀수 없이 많다. 저 3가지만큼의 열정은 아니지만 말이다 1인 개인 카페 탐방하고 사장님들과 인생 이야기 하기 아카펠라, 하모니 4중창단 결성하기 여러 곳을 다니면서 사진 찍어서 나만..
그리디 알고리즘(탐욕법) : 현재 상황에서 지금 당장 좋은 것만 고르는 방법 일반적인 그리디 알고리즘은 문제를 풀기 위한 최소한의 아이디어를 떠올릴 수 있는 능력을 요구한다. (like. 수학) 그리디 해법은 정당성 분석이 중요하다.단순히 가장 좋아 보이는 것을 반복적으로 선택해도 최적의 해를 구할 수 있는지 검토해야 한다.일반적인 상황에서 그리디 알고리즘은 최적의 해를 보장할 수 없을 때가 많다.하지만 코딩 테스트에서의 대부분의 그리디 문제는 그리디로 얻은 해가 최적의 해가 되도록 세팅해 놓는다.그리고 우린 이 문제가 그리디 문제인지 추론할 수 있어야 한다.문제 : 거스름 돈500원, 100원, 50원, 10원 동전이 무한히 있다. 손님에게 거슬러 주어야 할 돈이 N원일 때, 거슬러 주어야 할 동전의 ..