https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마 www.acmicpc.net ⊙ 문제 ⊙ 입력 ⊙ 출력 ⊙ 예제 입출력 ⊙ 알고리즘 분류 자료 구조 문자열 스택 ⊙ 문제 접근 과정 이번 코드는 주석이 딱히 필요 없을 것 같아서 넣지 않았다. 여는 괄호가 들어오면 종류별로 구분해서 스택에 push 해준다. 닫는 괄호가 들어오면 먼저 스택에 값이 있는지 확인하고 없다면 no를 출력 값이 있다면 스택 제일 맨 위에 있는 괄호의 종류와 같은지 판별한다. 만약 종류가..
https://www.acmicpc.net/problem/10814 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 www.acmicpc.net ⊙ 문제 ⊙ 입력 ⊙ 출력 ⊙ 예제 입출력 ⊙ 알고리즘 분류 정렬 ⊙ 문제 접근 과정 vector의 pair를 이용하여 int와 string을 같은 index에 저장해줬다. 나이에 대해 정렬은 직접 구현하였고 순서대로 정렬한 int에 대해서 나이와 이름을 출력해줬다. 하지만 계속 틀리다고 나왔다. (정신 나갈뻔) 나이에 대해서만 정렬해주어서 같은 나이면 입력한 순서대로 정확히 나왔다. 그렇지만 우리는 ..
https://www.acmicpc.net/problem/2775 2775번: 부녀회장이 될테야 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다 www.acmicpc.net ⊙ 문제 ⊙ 입력 ⊙ 출력 ⊙ 예제 입출력 ⊙ 알고리즘 분류 수학 ⊙ 문제 접근 과정 처음에 배열에 값을 넣어주어 바로 몇 층 몇 호인지만 알면 되게끔 코드를 구성해봤다. 2층 1호(1명) 2호(1+(1+2))명 3호(1+(1+2)+(1+2+3))명 1층 1호(1명) 2호(1+2명) 3호(1+2+3명) 0층 i호(i명) 이렇게 구성되어있는데 이거는 곧 배열 arr[i][j]가 있다면 바로 아래인 i-1층의 1부터 j까지의 합이다. 코드로..
https://www.acmicpc.net/problem/9465 9465번: 스티커 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스의 첫째 줄에는 n (1 ≤ n ≤ 100,000)이 주어진다. 다음 두 줄에는 n개의 정수가 주어지며, 각 정수는 그 위치에 해당하는 스티커의 www.acmicpc.net ⊙ 문제 ⊙ 입력 ⊙ 출력 ⊙ 예제 입출력 ⊙ 알고리즘 분류 다이나믹 프로그래밍 ⊙ 문제 접근 과정 1칸 뒤를 선택하는 경우와 2칸 뒤를 선택하는 경우 2가지를 비교해주어 더 큰 값을 더해주는 점화식을 만들었다. ⊙ 문제 풀이 #include using namespace std; #define MAX 100001 int T, N; int sticker[2][MAX], dp[2][MAX]..
https://www.acmicpc.net/problem/21278 21278번: 호석이 두 마리 치킨 위의 그림과 같이 1번과 2번 건물에 치킨집을 짓게 되면 1번부터 5번 건물에 대해 치킨집까지의 왕복 시간이 0, 0, 2, 2, 2 로 최소가 된다. 2번과 3번 건물에 지어도 동일한 왕복 시간이 나오지만 더 www.acmicpc.net ⊙ 문제 ⊙ 입력 ⊙ 출력 ⊙ 예제 입출력 ⊙ 알고리즘 분류 그래프 이론 브루트포스 알고리즘 플로이드-와샬 ⊙ 문제 접근 과정 플로이드 와샬을 통해 문제를 풀었다. 먼저 길 없음을 표시하고 입력을 통해 주어진 M개의 길을 뚫어준다. 그다음 플로이드 와샬 알고리즘을 통해 거쳐가는 값이 존재하면 갱신! 그리고 2중 for문을 통해 브루트포스를 구현했다. 배열 v를 만들고..
https://www.acmicpc.net/problem/15666 15666번: N과 M (12) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net ⊙ 문제 ⊙ 입력 ⊙ 출력 ⊙ 예제 입출력 ⊙ 알고리즘 분류 백트래킹 ⊙ 문제 접근 과정 바로 전 단계인 11탄에서 비내림차순의 조건을 충족하기 위해 num 변수만 추가해줬다. ⊙ 문제 풀이 #include #include #include #include using namespace std; #define MAX 9 int N,M; int first[MAX]; int arr[MAX]; set ..
https://www.acmicpc.net/problem/15665 15665번: N과 M (11) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net ⊙ 문제 ⊙ 입력 ⊙ 출력 ⊙ 예제 입출력 ⊙ 알고리즘 분류 백트래킹 ⊙ 문제 접근 과정 이전 단계인 10탄에서 방문 여부만 제거해줬다! 왜냐하면 같은 수를 여러 번 골라도 되기 때문에. 하지만 같은 수를 여러번 골라도 같은 수열은 출력하지 않는다. set 덕분에 ㅎㅎ ⊙ 문제 풀이 #include #include #include #include using namespace std; #defi..
https://www.acmicpc.net/problem/15664 15664번: N과 M (10) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net ⊙ 문제 ⊙ 입력 ⊙ 출력 ⊙ 예제 입출력 ⊙ 알고리즘 분류 백트래킹 ⊙ 문제 접근 과정 비내림차순이 무엇인지 알고 싶다면? 비내림차순에 대해서 적은 글 (N과 M 8탄)을 참고하자! 비내림차순을 구현하기 위해 9탄의 코드에서 num 변수를 추가적으로 만들어줬다.현재 값보다 높은 값만 출력할 수 있도록 하는 변수다. set을 통해 중복을 제거해줬고, visited를 통해 방문한 곳은 가지 않는..
https://www.acmicpc.net/problem/15663 15663번: N과 M (9) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net ⊙ 문제 ⊙ 입력 ⊙ 출력 ⊙ 예제 입출력 ⊙ 알고리즘 분류 백트래킹 ⊙ 문제 접근 과정 수열의 중복을 막기 위해 set을 사용했다. vector에 수열의 값을 저장을 M개만큼 저장하고 그 값들을 set에 저장한다. 이번 문제의 point! 이번 9탄에서는 방문처리인 visited을 사용하지 않으면 시간 초과가 발생한다. N과 M 9탄에서 드디어 방문 표시를 해야 하는 이유를 몸소 확인할 수 있..
https://www.acmicpc.net/problem/15657 15657번: N과 M (8) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 www.acmicpc.net ⊙ 문제 ⊙ 입력 ⊙ 출력 ⊙ 예제 입출력 ⊙ 알고리즘 분류 백트래킹 ⊙ 문제 접근 과정 문제의 세 번째 제한조건을 보자. 고른 수열은 비내림차순이어야 한다. 이 조건을 보고 나는 의아했다. 오름차순과 내림차순, 서로 반대말 아닌가? 그렇다는 건 비내림차순으로 나타내라면 그에 반대인 오름차순으로 나타내라는 건가? 그리고 예제 입출력을 봤다. 오름차순이다. 내 생각이 어느 정도 맞았다는 것..
- Total
- Today
- Yesterday
- 연습문제
- 우종정
- 자바스크립트
- 구현
- OS
- Web
- 프로그래머스
- 쉽게 배우는 자바 프로그래밍
- 백준
- JS
- C++
- 운영체제
- java
- 답
- 파이썬
- Python
- 정답
- 문자열
- 쉽게배우는
- 알고리즘
- 해답
- 정렬
- 그리디
- py
- CPP
- BFS
- 자바
- 정리
- 풀이
- 쉽게배우는자바프로그래밍
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |