일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 자바
- openCV
- 코딩테스트 연습
- 퍼셉트론
- 웹해킹
- 크레인 인형뽑기
- c++
- boj
- 5585
- 네트워크
- tcp
- C언어
- 딥러닝
- c언어 게임
- Old-14
- 소프트맥스 함수
- 신규 아이디 추천
- JS
- 백준
- 코드엔진
- webhacking.kr
- 자바스크립트
- 프로그래머스
- Old-17
- 10809
- old-1
- 웹케이알
- 리버싱
- 게임 프로그래밍
- 계단함수
- Today
- Total
목록Problem Solving (33)
SteffenLee
안녕하세요. 이번에는 프로그래머스 코딩 테스트 연습 Lv1. 2021 KAKAO BLIND RECRUITMENT - 신규 아이디 추천을 풀어봤습니다. 문제는 비밀번호를 입력받고 입력받은 비밀번호를 아래 규칙대로 바꿔주면되는 문제입니다. 1단계 new_id의 모든 대문자를 대응되는 소문자로 치환합니다. 2단계 new_id에서 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 모든 문자를 제거합니다. 3단계 new_id에서 마침표(.)가 2번 이상 연속된 부분을 하나의 마침표(.)로 치환합니다. 4단계 new_id에서 마침표(.)가 처음이나 끝에 위치한다면 제거합니다. 5단계 new_id가 빈 문자열이라면, new_id에 "a"를 대입합니다. 6단계 new_id의 길이가 16자 이상이면,..
안녕하세요. 이번에는 프로그래머스 코딩테스트 연습 Lv1 2019 카카오 개발자 겨울 인턴쉽 - 크레인 인형뽑기를 풀어봤습니다. #include #include #include using namespace std; int solution(vector board, vector moves) { int answer = 0; int n = board.size(); stack list; for(int i = 0; i < moves.size(); ++i){ int location = moves[i]-1; for(int y = 0; y < n; ++y){ if(board[y][location] == 0) continue; if(!list.empty() && list.top() == board[y][location])..
안녕하세요. 오늘은 백준 브론즈 2문제인 알파벳 찾기를 풀이해보겠습니다. 알파벳 소문자로만 데이터가 주어지고, 해당 데이터에서 처음 알파벳이 나오는 지점을 저장해주고 출력해주는 문제입니다. 이 문제에서 핵심은 알파벳이 '처음'으로 등장하는 위치를 저장해주는 것이 중요하다고 생각했습니다. 그래서 저 같은 경우 위치를 저장해주는 배열을 애초에 -1로 초기화하고, 해당 위치 배열의 값이 -1이 아니면 건너뛰도록 했습니다. 코드를 보겠습니다. #include #include using namespace std; int main() { string str; int arr[100]; char alpa[26] = { 'a','b','c','d','e','f','g','h','i','j','k','l','m','n',..
이번에는 백준 5585 거스름돈을 풀어보겠습니다. 지불할 돈을 입력하고 잔돈의 개수를 구하면되는 문제입니다. 이건 최대값(500)부터 빼주면서 계산해주면 됩니다. 코드를 보겠습니다. #include using namespace std; int main() { int n, tot = 0, cnt = 0, tmp = 0;; int arr[6] = { 500, 100, 50, 10, 5, 1 }; cin >> n; tot = 1000 - n; for (int i = 0; i = arr[i]) { tot -= arr[i]; ++cnt; } else break; } } cout
안녕하세요. 오늘은 BOJ 1026번 보물을 풀어보겠습니다. 그리디 알고리즘으로 분류되어 있는 문제입니다. 배열 두개에 N개의 수열을 입력받고 A * B의 총합을 구하는데, 그 총합이 최소가 되게해야하는 문제입니다. 두 수열을 곱한 값의 총합이 최소가 되려면 두 수열중 큰 값은 작은 값과 곱해져야만 최소를 만들 수 있습니다. 예제를 들어 설명하면, 두 수열 A,B를 모두 정렬하면, A : 0, 1, 1, 1, 6 B : 1, 2, 3, 7, 8 한 뒤에 배열 한 개를 역순으로 뒤집어서 계산해줬습니다. S = A[0] * B[4] + A[1] * B[3] + ... + A[4] *B[0] 이렇게 계산해주면 예제처럼 합이 18이 나오게 됩니다. 코드를 보겠습니다. #include #include #inclu..
문제 분류에서 그리디 알고리즘으로 분류되어 있는 문제입니다. N명의 사람들이 각각 돈을 인출하는데 N분이 걸립니다. 이 문제에서는 모든 사람들이 인출하는데까지 최단시간이 걸리게 해야합니다. 그러려면, 인출하는데 시간이 짧게 걸리는 사람부터 돈을 인출하게 되면, 최단시간이 나오게 됩니다. 위 문제에서 주어진 예제를 보면 순서를 바꾸지 않고 그냥 진행하게 되면 각 사람들이 돈을 인출하는데 걸리는 시간의 합이 39분이 나옵니다. 여기서 시간이 짧게 걸리는 순으로 나열해서 계산을 하게되면 총 32분으로 시간이 단축됩니다. 그러면 프로그램의 흐름은, 시간을 내림차순으로 정리하고, 1번 사람 시간 + (1번 사람 시간 + 2번 사람 시간) + ....+(1번 사람 시간 +...+ n번 사람 시간) 이렇게 계산하면 ..
간단한 입출력 문제입니다. N을 입력 받고, 1~N까지의 합을 출력해주면 됩니다. 코드를 보겠습니다. #include using namespace std; int main() { int k, sum = 0; cin >> k; for (int i = 1; i
2007년 중 한 날을 입력 받고, 그 날짜의 요일을 출력하면 되는 문제입니다. 월 화 수 목 금 토 일 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 2/1(32) 2/2(33) 2/3(34) 2/4(35) 2/6(36) 2/7(37) 2/8(38) 2/9(39) 2/10(40) 2/11(41) ..... 2007년에는 이런식으로 날이 진행되는데, 여기서 포인트는 7일을 주기로 요일이 같다는 점입니다. 1/1이 월요일 +7일 하면 1/8일이 월요일 이 점을 이용해서 나머지 연산자를 사용해서 나머지가 1이면 월요일, 2면 화요일... 이렇게 문제를 풀 수 있습니다. 코드를 보겠습니다. #include ..