smooth waters run deep

C++ 20

1781_컵라면 (C++)

1781번: 컵라면 상욱 조교는 동호에게 N개의 문제를 주고서, 각각의 문제를 풀었을 때 컵라면을 몇 개 줄 것인지 제시 하였다. 하지만 동호의 찌를듯한 자신감에 소심한 상욱 조교는 각각의 문제에 대해 데드라 www.acmicpc.net #include #include #include #include using namespace std; struct Question{ int deadline; int cup; bool operator< (Question question) const{ //오름차순 if(deadline==question.deadline) return cup

1d-1c/BOJ 2021.06.24

Level1_두 개 뽑아서 더하기 (C++)

코딩테스트 연습 - 두 개 뽑아서 더하기 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한 programmers.co.kr #include #include #include using namespace std; vector solution(vector numbers) { vector answer; set s; for(int i=0; i

1d-1c/Programmers 2021.04.05

1149_RGB거리 (C++)

1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net #include #include //memset #include //min using namespace std; int n; int house[1001][3] = {0,}; int cal[1001][3] = {0,}; int main(){ cin >> n; for(int i=0; i house[i][j]; if(i==n-1){ cal[i][j] = house[i][j]; } } } for(int i=n-2; i>=0; i--){ cal[i]..

1d-1c/BOJ 2020.12.29

1260_DFS와 BFS (C++)

1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net #include #include //memset #include using namespace std; bool visited[1001] = {false}; int arr[1001][1001]; int n, m, startV; void dfs(int v){ cout startV; for(int i=0; i> v1 >> v2; arr[v1][v2] = arr[v2][v1] = 1; } dfs(startV); cout bool형(..

1d-1c/BOJ 2020.12.22

4963_섬의 개수 (JAVA) (C++)

4963번: 섬의 개수 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 지도의 너비 w와 높이 h가 주어진다. w와 h는 50보다 작거나 같은 양의 정수이다. 둘째 줄부터 h개 줄에는 지도 www.acmicpc.net [C++] - ① BFS #include #include //memset #include using namespace std; int w=1; int h=1; int map[51][51] = {0,}; bool visited[51][51] = {false}; int ans = 0; struct XY{ int x; int y; }; int dx[] = {-1,-1,-1,0,0,1,1,1}; int dy[] = {-1,0,1,-1,1,-1,0,1}; void ..

1d-1c/BOJ 2020.11.09

Level2_기능개발 (C++) (JAVA)

코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr [C++] : 큐로 구현 #include #include using namespace std; vector solution(vector progresses, vector speeds) { queue days; //걸리는 시간 저장 vector answer; int max_day; int cnt = 1; //answer에 넣을 값 bool flag = false; //answer에 넣었는지 확인하기 위한 flag if (progresses.size() > ..

1d-1c/Programmers 2020.11.05

Level1_완주하지 못한 선수 (C++) (JAVA)

코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers.co.kr [C++] #include #include #include using namespace std; string solution(vector participant, vector completion) { string answer = ""; unordered_map p; //participant 해시맵 for (int i = 0; i < participant.size(); i++){ if (p.end() == p.find(participant[i])..

1d-1c/Programmers 2020.10.31

2805_나무 자르기 (JAVA) (C++)

2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M을 www.acmicpc.net [C++] #include #include //sort using namespace std; int n, minlength; int namu[1000001]; long long cal(int length){ //집에 가져가는 나무의 높이 계산 long long result = 0; for(int i=0; ilength) result += namu[i]-length; } return result; } int main(){ s..

1d-1c/BOJ 2020.09.18

2667_단지번호붙이기 (JAVA) (C++)

2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집들의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. www.acmicpc.net [C++] - ① BFS #include #include //sort #include #include using namespace std; int n; int map[25][25]; bool visited[25][25] = {false}; vector danji; struct XY{ int x; int y; }; int dx[] = {-1,1,0,0}; int dy[] = {0,0,-1,1}; void bfs(XY xy){ int cnt = 1; queue q; q..

1d-1c/BOJ 2020.09.10