인기 글
-
Algorithm
[백준][2741][Loop] N번 출력
N번 출력 자연수 N이 주어졌을 때, 1부터 N까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오. 첫째 줄에 100,000보다 작거나 같은 자연수 N이 주어진다. 첫째 줄부터 N번째 줄 까지 차례대로 출력한다. __해설__ 첨에 진짜 알고리즘이 아니라 C++ 코딩 기초 문제인줄 알고 c++로 자신감 넘치게 제출 결과는 시간초과 ㅋㅋㅋㅋㅋㅋㅋ 아 나는 빡빡이다. 나는 빡빡이다... 결론부터 말하면, cin, cout은 printf, scanf보다 느리다는 것. 123456789#include int main(void) { int n; scanf("%d", &n); for (int i = 1; i
-
Algorithm
[백준][Op] 나머지 연산
나머지 연산 (A+B)%C는 (A%C + B%C)%C 와 같을까?(A×B)%C는 (A%C × B%C)%C 와 같을까?세 수 A, B, C가 주어졌을 때, 위의 네 가지 값을 구하는 프로그램을 작성하시오. 첫째 줄에 A, B, C가 순서대로 주어진다. (2 ≤ A, B, C ≤ 10000) 첫째 줄에 (A+B)%C, 둘째 줄에 (A%C + B%C)%C, 셋째 줄에 (A×B)%C, 넷째 줄에 (A%C × B%C)%C를 출력한다. 12345678#include using namespace std; int main(void){ int a, b, c; cin >> a >> b >> c; cout
-
Algorithm
[백준][I/O] 그대로 출력하기
그대로 출력하기 입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄은 주어지지 않는다. 또, 각 줄은 공백으로 시작하지 않고, 공백으로 끝나지 않는다. 1234567891011#include #include using namespace std; int main(void){ string a; for(int i=0; i
-
Algorithm
[Level 3] 3. 거스름돈 경우의 수
3. 거스름돈 경우의 수 Algorithm - Level 3 - 풀이 1. 이 문제도 Dynamic Programming으로 접근가능하다. 2. n+1 크기의 배열을 선언한다. 3. 1부터 n까지 원소를 0으로 초기화한다.-> 만약, 화폐단위 중 1이 존재하면 모든 원소를 1로 초기화한다. 5. 화폐단위와 같은 거스름돈은 (n=5, money=5) 경우의 수를 1 증가한다. 6. 그 외는 n까지의 인덱스를 차례로 접근해 작은 화폐단위를 뺀 인덱스의 원소값을 더해준다.-> ex) money=2, index=5일 경우, 5-2=3 index에 위치한 원소값을 더해준다. 이는 그 전에 계산한 경우의 수를 더해주는 것으로 거스름돈이 5인 경우의 수는 money=2를 하나 선택하고 남은 돈 3의 경우의 수와 같다..
-
Algorithm
[Level 2] 10. 행렬의 곱셈
10. 행렬의 곱셈 Algorithm - Level 2 - 풀이 1. 단순하게 for문을 사용하여 접근한다. 2. arr1의 행과 arr2의 열이 연산의 대상-> 첫 번째 for문은 arr1의 행의 크기, 두 번째 for문은 arr2의 열의 크기만큼 접근 3. arr1 열과 arr2의 행은 같아야 연산이 가능-> 임의의 변수 하나로 두 열과 행을 접근 가능 4. 결과는 arr1의 행과 arr2의 열의 크기를 갖는 모양-> arr1 : AxM, arr2 : NxB => result : AxB 1234567891011121314151617181920#include #include using namespace std; vector solution(vector arr1, vector arr2) { vector ..
-
Algorithm
[Level 2] 7. 최대값과 최소값
7. 최대값과 최소값 Algorithm - Level 2 - 풀이 1. 공백을 기준으로 숫자들이 나눠져 있다. 2. 숫자들을 임시 string 변수에 저장하며, 이 변수에는 - 기호도 붙을 수 있다. 3. 공백을 만나면 임시 변수에 저장하였던 값을 int형으로 변환한다.-> stoi() 4. int형으로 변환한 것을 int형 배열에 저장하고 모든 수가 저장이 되었다면 정렬한다.-> sort() 5. 정렬이 끝나면 맨 처음은 최소, 맨 끝은 최대값으로 이를 다시 string형으로 변환하여 반환한다.1234567891011121314151617181920212223242526272829303132333435363738#include #include #include #include using namespace..
최신 글
-
Project
[졸업 작품] Image Denoising & Colorizing Network.
Image Denoising & Colorizing Network. - 2018년** 제가 졸업 작품을 위해 공부한 내용을 정리한 것이라 매우 간략합니다. 자세한 구조, 학습 방법과 같은 것은 생략하겠습니다. ** 1. MOTIVATION 영상을 이용하는 application은 영상의 품질이 성능을 좌우한다고 볼 수 있다. (e.g. object detection) 하지만, 영상의 품질은 우리가 원하던 것처럼 항상 좋을 수 없다. 전기적 간섭과 같은 환경적인 요인에 의해서 noise라는 원치 않는 pixel 값을 갖게된다. 이러한 noise를 제거하는 기존의 방법은, 주변 pixel의 값을 이용하는 것이다.(주변 pixel의 값을 평균을 내서 적용하거나, 최대 또는 최소값을 이용하거나...) 이러한 방법..
-
Algorithm
[백준][11720][Loop] 숫자의 합
숫자의 합문제N개의 숫자가 공백 없이 쓰여있다. 이 숫자를 모두 합해서 출력하는 프로그램을 작성하시오.입력첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다.출력입력으로 주어진 숫자 N개의 합을 출력한다. __해설__10의 자리의 숫자를 표현하는 거라면 고민 좀 해야겠지만 문제는 1의 자리들을더 하는 것으로 보고 이 문제를 풀었다. 한번에 공백 없이 입력된 수들을 1의 자리들로 분리하려면 문자열로 받는 것이편하다 생각하고 string 변수로 입력받아 한 문자에 '0'값을 빼는 것으로 해결하였다.12345678910111213141516#include #include using namespace std; int main(void) { int n; str..
-
Algorithm
[백준][1924][Loop] 2007년
2007년 문제오늘은 2007년 1월 1일 월요일이다. 그렇다면 2007년 x월 y일은 무슨 요일일까? 이를 알아내는 프로그램을 작성하시오.입력첫째 줄에 빈 칸을 사이에 두고 x(1≤x≤12)와 y(1≤y≤31)이 주어진다. 참고로 2007년에는 1, 3, 5, 7, 8, 10, 12월은 31일까지, 4, 6, 9, 11월은 30일까지, 2월은 28일까지 있다.출력첫째 줄에 x월 y일이 무슨 요일인지에 따라 SUN, MON, TUE, WED, THU, FRI, SAT중 하나를 출력한다. __해설__해설이라 하기 그렇지만 내가 생각한 방법은 switch case문을 이용하는 방법이다.요일을 기억하는 string 배열을 선언하고 총 일자를 7과 나머지 연산을 통해 요일을 구하는 방법이다.12345678910..
-
Algorithm
[백준][2741][Loop] N번 출력
N번 출력 자연수 N이 주어졌을 때, 1부터 N까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오. 첫째 줄에 100,000보다 작거나 같은 자연수 N이 주어진다. 첫째 줄부터 N번째 줄 까지 차례대로 출력한다. __해설__ 첨에 진짜 알고리즘이 아니라 C++ 코딩 기초 문제인줄 알고 c++로 자신감 넘치게 제출 결과는 시간초과 ㅋㅋㅋㅋㅋㅋㅋ 아 나는 빡빡이다. 나는 빡빡이다... 결론부터 말하면, cin, cout은 printf, scanf보다 느리다는 것. 123456789#include int main(void) { int n; scanf("%d", &n); for (int i = 1; i
-
Algorithm
[백준][2839][Op] 설탕 배달
설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다.상근이는 귀찮기 때문에, 최대한 적은 봉지를 들고 가려고 한다. 예를 들어, 18킬로그램 설탕을 배달해야 할 때, 3킬로그램 봉지 6개를 가져가도 되지만, 5킬로그램 3개와 3킬로그램 1개를 배달하면, 더 적은 개수의 봉지를 배달할 수 있다.상근이가 설탕을 정확하게 N킬로그램 배달해야 할 때, 봉지 몇 개를 가져가면 되는지 그 수를 구하는 프로그램을 작성하시오. 첫째 줄에 N이 주어진다. (3 ≤ N ≤ 5000) 상근이가 배달하는 봉지의 최소 개수를 출력한다. 만약, 정확하게 N..