18110번: solved.ac 5명의 15%는 0.75명으로, 이를 반올림하면 1명이다. 따라서 solved.ac는 가장 높은 난이도 의견과 가장 낮은 난이도 의견을 하나씩 제외하고, {5, 5, 7}에 대한 평균으로 문제 난이도를 결정한다. www.acmicpc.net 주어진 크기 n에 대해 값을 입력받고, 절사 평균을 구하는 문제. 절사 평균은 문제 설명에 나와있다. 이 문제를 해결할 때 파이썬은 주의할 게 있는데, 파이썬에 내장되어 있는 round함수를 쓰면 오답처리된다. python에서 round함수를 사용한 반올림은 사사오입의 원칙을 따른다. 사사오입은 5에서 반올림 할때, 앞자리 숫자가 홀수면 올림, 짝수면 내림을 한다. print(round(1.5)) # 2 올림 print(round(2...
큐(Queue) 큐는 가장 먼저 넣은 데이터가 가장 먼저 나오는 자료구조다. 스택이랑 비교하면 스택은 입구가 1개인 통 같은 구조이고, 큐는 터널 같은 구조다. 가장 먼저 들어온 차가 가장 먼저 나간다. 이런 구조를 First In First Out(FIFO, 일명 피포)라고 한다. 큐에는 두개의 포인터가 존재한다. 하나는 rear, 다른 하나는 front다. rear에서는 Enqueue, front에서는 dequeue연산이 수행된다. 큐의 연산 - enqueue(): 큐가 가득찼는지 확인하고 가득차있지 않으면 rear 위치에 데이터 삽입. - dequeue(): 큐가 비어있는지 확인하고 비어있지 않으면 front위치에 있는 데이터 return하고 remove. - peek(): 큐의 front 위치에 ..
스택(Stack) 스택은 가장 나중에 넣은(push) 데이터를 가장 먼저 꺼내는(pop) 자료구조다. 이런 구조를 Last In First Out(후입선출, LIFO) 또는 First In Last Out(선입후출, FILO)라고 한다. 흔히 택배 트럭에 있는 택배 상자들을 생각하면 된다. 가장 나중에 넣은 택배 상자부터 먼저 꺼내니까 스택의 연산 - push(): 스택이 가득 찼는지(isFull) 확인하고 가득 차있지 않으면 top 다음 위치에 데이터 삽입. - pop(): 스택이 비어있는지(isEmpty) 확인하고 비어있지 않으면 top위치에 있는 데이터 return 하고 삭제. - peek():스택의 top에 있는 데이터 return. - isFull(): 스택이 가득 찼는지 확인. 스택의 사이즈와..
2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 설탕 N킬로그램을 주고 이걸 5킬로그램, 3킬로그램 봉지로 가장 적은 개수로 나누는 문제. 처음에는 수학으로 해결하려다가 "동전" 문제가 생각나서 DP로 해결했다. 아이디어 n킬로그램은 (n - 3) + 3 또는 (n - 5) + 5로 생각할 수 있다. 따라서 n킬로그램의 봉지 개수는 n - 3과 n - 5 킬로그램 봉지 개수 중 작은 거(min) + 1이 된다. 이 아이디어로 해결하려면 n - 3과 n - 5의 개수 정보를 저장해 뒀다가 재사용이 필요하다. 3 ~ n킬로..
프로그래머스 인공지능 데브코스 지원 결심(8/2)4학년 1학기를 마치고 여름방학에 오픽 준비와 졸업 과제를 병행하고 있었는데 코로나에 걸린 덕분에 계획이 틀어졌다. 그래서 계획 수정을 고민하던 중에 인공지능 데브코스가 모집 중이어서, 고민고민 긴 고민 끝에 지원을 결심했다.지원서 작성 (8/2 ~ 8/3)지원서 작성이 3일 자정까지여서 매우 급한 상태였다. 문항은 총 3개였다. 1. 지금까지 프로그래밍 공부 어떻게 했고, 과정에 참여해서는 어떻게 공부할 계획인가(+전공, 학습 수준 물어봄) 내가 했던 알고리즘 공부 + 블로그 작성을 뿌리로 시작해 작성했다. 그리고 마지막에는 나의 전공과 학습 수준을 작성했다. 2. 인공지능 관심 분야 및 진출하고자 하는 이유 + 신청 동기 내가 관심을 가지게 된 이유, ..
2447번: 별 찍기 - 10 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 www.acmicpc.net 거의 1년 전에 풀었던 문제. 진짜 아무런 계기 없이 그냥 뜬금없이 다시 생각나서 풀어봤다. 다행히 해결 이 문제는 재귀의 특징을 잘 이해하면 해결할 수 있는 문제다. 괜찮은 문제인 거 같다. 꼭 풀고 나서 자신의 것으로 체화하자. 아이디어 사고를 풀어가는 거라 좀 추상적일 수 있다. 일단 첫 번째 N = 3인 경우는 다음과 같다. *** * * *** 그리고 N = 9인 경우는 다음과 같다. 여기서 패턴을 나눠보면 크게 A파트(빨간색..
계기 YOLO학습을 위해 이미지 라벨링을 하니, 이미지 수백 장의 이름을 변경해야 되는 일이 생겼다. 하나하나 변경하면 되지만 너무 귀찮고 오래 걸린다. 파이썬으로 만들 수 있을 거 같아, 간단하게 코드를 짜봤다. 프로그램이라 하기엔 코드가 너무 짧긴 하지만, 뭐 내가 필요에 의해 만든 거니 유의미하지 않을까?라고 생각한다. 코드 import os #기존 사진 백업 필수!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! #기존에 있는 사진들을 삭제됨 #기존 파일 경로 folder_path = 'C:\\Users' #새로 저장 경로 (정확히 맞아야 함) dst_path = 'C:\\Users' #폴더안에있는 파일들 이름 리스트로 가져오기 file_names = os.listdir(folder_pat..
콰인 콰인(quine)은 입력 없이 자기 자신의 소스 코드를 출력하는 프로그램이다. 예를 들어 코드가 print('Hello world') 라면 출력도 print('Hello world')로 나와야 한다. 다음은 파이썬으로 작성된 Quine 프로그램이다. exec(s:='print("exec(s:=%r)"%s)') 또는 n = 'n=%r\nprint(n%%n)' print(n%n)