일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 그리디
- 백준
- sw expert academy
- dfs
- 알고리즘
- BOJ
- 완전탐색
- BFS
- C++
- 삼성 SDS 대학생 알고리즘 특강
- 다이나믹 프로그래밍
- dynamic programming
- hackerrank
- SWEA
- 구현
- 시뮬레이션
- 스택
- 소수
- 동적 계획법
- 백트래킹
- 삼성 기출
- 맛집
- koitp
- 잠실
- DP
- 브루트포스
- 해커랭크
- PS
- Algorithm
- 에라토스테네스의 체
- Today
- Total
펭로그
문제링크 : https://programmers.co.kr/learn/courses/30/lessons/42577 알고리즘 헤더에 있는 sort를 이용하여 쉽게 구현하였다.먼저 sort를 하게되면 숫자 순서대로 정렬이 되고 문제에서 요구하는 접두어의 경우 반드시 인접한 위치에 정렬되게 된다.예를 들어서 [12345, 332, 123]을 정렬하게 되면 [123, 12345, 332] 이런 식으로 정렬된다는 뜻이다.그리고 여기서 한가지 알 수 있는 사실은 정렬된 이후 접두어에 해당하는 숫자는 무조건 앞에 나오게 된다.따라서, 모든 배열의 원소를 완전탐색하여 현재의 위치와 현재의 위치 직전의 문자열을 서로 비교하여 string 클래스의 find() 함수를 사용하여 일치하는 문자열이 나오면 정답으로 출력하면 된..
문제링크 : https://noj.am/1475 문자열을 입력 받아서 갯수를 카운팅 하고 그 중에서 가장 많이 카운팅 된 숫자가 몇개인 지를 구하는 문제이다.단, 문제의 조건에서 6과 9는 뒤집어서 사용할 수도 있다고 했기 때문에 0.5씩 카운팅하여 쉽게 해결하였다.이러한 과정을 위해서 float형을 사용하였다. 12345678910111213141516171819202122232425262728293031323334353637383940414243// BOJ_1475 방 번호#include #include using namespace std; int max(int a, int b){ return a > b ? a : b;} int round(float input){ float temp = (int)in..
문제링크 : https://noj.am/1018 브루트포스 문제로 4중 for문이라는 더러운 코드로 문제를 풀게 되었다..... 체스판의 격자를 다음과 같은 2가지의 임의의 규칙을 정할 수 있다.1-1. 홀수번째 줄의 홀수 칸이 'W'1-2. 홀수번째 줄의 짝수 칸이 'B'1-3. 짝수번째 줄의 짝수 칸이 'W'1-4. 짝수번째 줄의 짝수 칸이 'B'or2-1. 홀수번째 줄의 홀수 칸이 'B'2-2. 홀수번째 줄의 짝수 칸이 'W'2-3. 짝수번째 줄의 짝수 칸이'B'2-4. 짝수번째 줄의 짝수 칸이'W' 위와 같은 조건에 해당이 되지 않는 칸이라면 전부 카운트를 시켜서 값을 누적시키면 다시 칠해야하는 칸이 몇칸인지 구할 수 있다.하지만 2가지의 case를 모두 비교할 필요 없이 1의 case를 골라서 ..
문제링크 : https://noj.am/5566 주사위의 지시사항 대로 구현하면 쉽게 풀리는 단순 시뮬레이션 문제이다.1. 현재 위치에서 주사위를 던져 해당 눈금만큼 진행한다.2. 보드의 범위를 초과 했는지 체크한다.3. 초과하지 않았으면 진행된 자리에 있는 지시사항을 수행한다.4. 보드의 범위를 초과 했는지 체크한다. 1234567891011121314151617181920212223242526272829303132333435363738394041// BOJ_5566 주사위 게임#include using namespace std; int direction[1001];int dice[1001]; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout..
문제링크 : https://noj.am/1120 단순하게 두 문자열을 같은 길이 만큼만 비교하여 일치하지 않는 만큼의 문자가 몇개인지를 체크하여 최소값을 구하는 브루트포스 알고리즘적 방법으로 접근하였다. 1. A의 앞에 아무 알파벳이나 추가한다. 2. A의 뒤에 아무 알파벳이나 추가한다.이 두 조건을 최소값이 나오게 하려면 추가할 아무 알파벳을 B와 같게 만들면 되기 때문에 신경 안써도 되는 조건이다. 12345678910111213141516171819202122232425262728293031323334// BOJ_1120 문자열#include #include using namespace std; int min(int a, int b) { return a > b ? b : a;} int main() ..