전체 글 223

[백준] 10870번, 10872번, 2798번

2798번 다른 방법이 없을까 고민했지만 그냥 bruteforce로 모든 경우의 수 따지는 것이었음 #include #include #include #include #include #include using namespace std; int main() { int n, m; // 숫자의 갯수, 그리고 목표 숫자 string nums; // 스트링 받을 변수 vector v; // 받은 카드의 숫자들 정리할 벡터 cin >> n >> m; cin.ignore(); getline(cin, nums); stringstream ss(nums); // stringstream으로 받아서 ' '별로 파싱하기 편하게 int str; while (ss >> str) { // 스트림에서 str에 받아서 v에 저장 v.pu..

[이것이~] 탐욕법, 구현

참고: https://www.youtube.com/playlist?list=PLVsNizTWUw7H9_of5YCB0FmsSc-K44y81 위의 동영상에 나오는 문제들을 직접 풀어보았다. Greedy Algorithm 문제1) 1이 될 때까지 #include using namespace std; int main(void){ int n, k, left, res, count, temp; cin >> n >> k; res = n; while(res>k){ temp = res%k; if(temp!=0){ res = res-temp; count = count + temp; } res = res/k; count++; } cout > str; int result = str[0]-'0'; for(int i = 1; i

[프로그래머스] 정렬 > K번째수

https://programmers.co.kr/learn/courses/30/lessons/42748?language=cpp 코딩테스트 연습 - K번째수 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr 문제 이해: array에는 길이 1에서 100 사이의 배열이다. commands 는 최대 50개, 즉 최대 3*50의 벡터값이다. command에 따라서 array를 잘라서, 자른 배열을 올림차순으로 정렬하고, 그 중 3번째에 있는 index의 값을 answer에 저장해서 반환하는 것이 과제이다. command의 행은 세 요소로 이루어졌는데, i는 array자를 시작점, j는 array마지막점, k는 그 ..

[백준] 2750번, 1181번, 1431번

2750번 C를 이용한 풀이: N(1 ≤ N ≤ 1,000)의 숫자가 주어진다. 제한 시간은 1초이고 1초 동안 약 1억개의 연산을 할 수 있으므로, 이렇게 수가 적은 경우에는 시간복잡도가 높은 알고리즘을 사용해도 풀 수 있다. 그래서 가장 기본적인 선택 알고리즘을 사용해본다. #include int arr[1001]; int main(void){ int num, i, j, temp, min, index; scanf("%d", &num); for(i=0; i char[]로 변환: strcpy(strarr, a.c_str()); - char[] 중에 숫자만 뽑은 후, int 로 변환해서 더하기: if(strarr[i]

[백준] 11654번, 11720번, 10809번

JAVA를 이용한 풀이 모두 문자열 관련 문제 11654번 import java.util.*; public class Main{ public static void main(String[] args) { int input; Scanner sc = new Scanner(System.in); input = sc.next().charAt(0); System.out.println(input); } 11720번 package baekjun1; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int num; String input; int res..

7. 너비 우선 탐색(BFS), 깊이 우선 탐색(DFS)

너비 우선 탐색 (Breadth First Search) 탐색 시 너비를 우선으로 탐색 수행 (가까운 것 먼저 탐색) = 출발 노드에서 거리 1인 것부터 탐색하게 됨. - 큐와 그래프로 구현 - 맹목적인 탐색 하고자 할 때 사용 - 최단 경로를 찾아줌 (ex. 미로) 알고리즘 구성: 1) 시작 노드를 큐에 넣어줌 & 방문 처리 2) 알고리즘 따름 (반복문) 1) 큐에서 노드 꺼내서 방문 처리 2) 꺼낸 노드와 연결된 노드 중 방문하지 않은 노드 큐에 넣어줌. 코드: #include #include #include using namespace std; int num = 7; int visited[7]; vector a[8]; // 배열 void bfs(int start){ queue q; q.push(st..

5. 계수 정렬 (Counting Sort)

범위 조건이 있는 경우에 굉장히 빠른 알고리즘 시간 복잡도: O(N) 단순하게 '크기를 기준으로' 세는 알고리즘 예시) 숫자는 1에서 5사이의 정수 1 3 2 4 3 2 5 3 1 2 3 4 4 2 5 1 2 3 5 2 3 1 4 3 5 2 1 1 1 1이 몇 개인지, 2가 몇 개인지.... 5가 몇 개인지 셈 #include int main(void){ int temp; int count[5]; int arr[30] = { 1, 3, 3, 5, 2, 3, 4, 2, 4, 4, 5, 3, 4, 2, 1, 1, 2, 3, 5, 3, 2, 4, 4, 1, 2, 3, 3, 2, 5, 3}; // 배열 초기화 for(int i = 0; i