본문 바로가기

전체 글275

[프로그래머스] 2021 Dev-Matching - 로또의 최고 순위와 최저 순위 (C++) 문제 및 풀이 문제) 프로그래머스 - 2021 Dev-Matching - 로또의 최고 순위와 최저 순위 -> https://programmers.co.kr/learn/courses/30/lessons/77484 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr ⊙ 풀이 당첨 순위의 최대와 최저를 어떻게 구할지 안다면 그다지 어렵지 않은 문제. 당첨 번호와 자신의 번호 중에 일치하는 것과 알아볼 수 없는 번호를 계산해 최고 순위와 최저 순위를 결정하면 된다. 완전 탐색을 이용해 O.. 2021. 6. 3.
[Spring Boot] 프로젝트 기본 구조를 알아보자 ⊙ Spring Boot 기본 디렉터리 Spring Boot 설치 후 프로젝트 생성 시, 디렉터리가 기본적으로 아래의 형식으로 생성된다. src/main/java src/main/resources src/test/java Project and External Dependencies build.gradle 하나씩 알아보도록 하자. ⊙ src/main/java 디렉터리 기존의 스프링 프로젝트와 마찬가지로 클래스, 인터페이스 등 자바 파일이 위치하는 디렉터리이다. 기본적으로 프로젝트 내 패키지에 Application 클래스가 하나 포함되어 있다. 이 파일에는 main 메서드가 하나 선언되어 있는데, SpringApplication.run 메서드를 호출하여 웹 어플리케이션을 실행하는 역할을 한다. 클래스 선언부.. 2021. 5. 1.
[Spring Boot] What is Spring? 스프링은 프레임워크다. 스프링은 오픈 소스다. 스프링은 Ioc컨테이너를 가진다. IoC(Inversion of Control)컨테이너: 각 객체의 생성, 생명 주기의 관리까지 모든 객체의 제어권을 스프링 프레임 워크가 가자고 있음을 의미 스프링이 객체를 스캔하여 heap에서 관리 스프링은 DI를 지원한다. DI(Dependency Injection): 각 클래스 간의 의존 관계를 Bean Definition 정보를 통해 사용자가 원하는 메서드에서 쓸 수 있도록 자동으로 연결해주는 것 스프링은 많은 필터를 가지고 있다. 스프링은 많은 어노테이션을 가지고 있다(리플랙션, 컴파일체킹). 어노테이션: 주석 + 힌트 -> 주석처럼 컴파일러가 무시하지 않음 스프링은 주로 어노테이션을 통해 객체 생성 어노테이션 표기.. 2021. 5. 1.
[Spring Boot] Back-End 공부 시작! ⊙어쩌다 보니 Spring Boot 공부 시작 2021년에 다양한 걸 해보자고 해서 한이음 프로젝트 세 개를 신청했는데... 너무 많이 신청한 것 같기도 하다. NLU, Big Data, ML 위주로 프로젝트 개설이 되었지만, 어떤 프로젝트든 백엔드 개발은 거의 필수니 공부를 안 할 수도 없는 듯하다. 다행히도? 세 프로젝트 모두 Spring Boot를 사용하니 열심히 공부해봐야겠다! 2021. 4. 24.
[백준] 1715번 - 카드 정렬하기 (C++/파이썬) 문제 및 풀이 문제) 백준 - 우선순위 큐 (Priority Queue) - 카드 정렬하기 ->www.acmicpc.net/problem/1715 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net C++ 소스 코드) 파이썬 소스 코드) 2021. 4. 14.
[백준] 11279번 - 최대 힙 (C++/파이썬) 문제 및 풀이 문제) 백준 - 우선순위 큐 (Priority Queue) - 최대 힙 -> www.acmicpc.net/problem/11279 11279번: 최대 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 www.acmicpc.net C++ 소스 코드) 파이썬 소스 코드) 2021. 4. 14.
[백준] 1927번 - 최소 힙 (C++/파이썬) 문제 및 풀이 문제) 백준 - 우선수위 큐 (Priority Queue) - 최소 힙 -> www.acmicpc.net/problem/1927 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net C++은 최소 힙 구현을 위해서 다음과 같이 선언한다. 기본은 최대 힙. 파이썬과 반대이므로 헷갈리지 않도록 유의하자. priority_queue heap; C++ 소스 코드) 파이썬 소스 코드) 2021. 4. 14.
[백준] 1181번 - 단어 정렬 (C++/파이썬) 문제 및 풀이 문제) 백준 - 정렬(Sort) - 단어 정렬 -> www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 길이가 짧은 순으로 정렬해주되, 길이가 같을 경우 사전 순으로 정렬한다. 자신이 사용하는 언어의 정렬 Tool을 잘 활용한다면 어렵지 않은 문제. C++ 소스 코드) 파이썬 소스 코드) 2021. 4. 14.
[백준] 1991번 - 트리 순회 (C++/파이썬) 문제) 백준 - 트리 - 트리 순회 -> www.acmicpc.net/problem/1991 1991번: 트리 순회 첫째 줄에는 이진 트리의 노드의 개수 N(1≤N≤26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A부터 차례대로 영문자 www.acmicpc.net 기본적인 트리 순회 문제. 트리 문제라 해서 struct, Tree에 얽매이지 말자. C++ 소스 코드) 파이썬 소스 코드) 2021. 4. 14.
[백준] 2437번 - 저울 (C++/파이썬) 문제) 백준 - 그리디 알고리즘 (Greedy) - 저울 -> www.acmicpc.net/problem/2437 2437번: 저울 하나의 양팔 저울을 이용하여 물건의 무게를 측정하려고 한다. 이 저울의 양 팔의 끝에는 물건이나 추를 올려놓는 접시가 달려 있고, 양팔의 길이는 같다. 또한, 저울의 한쪽에는 저울추들만 놓 www.acmicpc.net 문제를 오랜 시간 관찰했지만... 누적합이라는 느낌은 왔지만 알고리즘의 핵심을 찾지 못했다. 결국 3일 고민후, 답을 봤지만... 이건 뭐 풀이가 이해가 가지 않았다. 수학적 귀납법스러웠는데 쉽게 납득이 되지 않았다. 그러던 중 엄청난 풀이를 발견했다. 백준 2437 풀이 및 해설 (aerocode.net) 백준 2437 풀이 및 해설 개요 매우 복잡해보이는 .. 2021. 4. 13.
[백준] 2503번 - 숫자야구 (C++) 문제 및 풀이 문제) 백준 - 구현 - 숫자 야구 -> www.acmicpc.net/problem/2503 2503번: 숫자 야구 첫째 줄에는 민혁이가 영수에게 몇 번이나 질문을 했는지를 나타내는 1 이상 100 이하의 자연수 N이 주어진다. 이어지는 N개의 줄에는 각 줄마다 민혁이가 질문한 세 자리 수와 영수가 답한 스트 www.acmicpc.net 분명 파이썬으로 풀 때는 쉬웠는데... 막상 C++로 구현하려니 어려웠던 문제. 구현 능력을 간과하지 말자. 소스 코드) 2021. 4. 13.
[백준] 2579번 - 계단 오르기(C++/파이썬) 문제 및 풀이 문제) 백준 - 동적 계획법 (Dynamic Programming) - 계단 오르기 -> www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net Python 코드는 바텀업(Bottom-Up), C++코드는 탑다운(Top-Down)으로 구현했다. C++ 소스 코드) Python 소스 코드) 2021. 4. 9.
[백준] 1629번 - 곱셈 (C++) 문제 및 풀이 문제) 백준 - 분항정복을 이용한 거듭제곱 - 곱셈 -> www.acmicpc.net/problem/1629 1629번: 곱셈 첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 모두 2,147,483,647 이하의 자연수이다. www.acmicpc.net 중간에 c로 나누어서 수를 작게 만드는게 핵심인 문제. 계산해야할 지수가 홀수,짝수로 나누어 지수법칙 적용. C++ 소스 코드) 2021. 4. 9.
[백준] 2217번 - 로프 (파이썬/C++) 문제 및 풀이 문제) 백준 - 그리디 알고리즘 (Greedy) - 로프 -> www.acmicpc.net/problem/2217 2217번: 로프 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하 www.acmicpc.net 그리디(Greedy) 같으면서도 완전 탐색(Brute Force) 같던 문제. 어렵지 않게 풀 수 있다! C++ 소스코드) 파이썬 소스코드) 2021. 4. 5.
[백준] 11726번 - 2xn 타일링 (파이썬/C++) 문제 및 풀이 문제) 백준 - 동적 계획법(Dynamic Programming) - 2xn 타일링 -> www.acmicpc.net/problem/11726 11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. www.acmicpc.net 점화식을 다음과 같이 작성할 수 있다. f(n) = f(n - 1) + f(n - 2) 파이썬 소스 코드는 위 점화식을 이용해서 작성했고, C++에서는 기저 사례(n = 1, n =2)의 설정과 재귀를 통해 답을 계산한다. 파이썬 소스코드) C++ 소스코드) 2021. 3. 30.
반응형