47. 봉우리
·
알고리즘
인프런 - it 취업을 위한 알고리즘 문제풀이 (with C/C++) : 코딩테스트 대비 강의를 바탕으로 공부한 내용입니다. 문제는 비공개로 입력예제와 출력예제만을 가지고 포스팅 입력예제 1 5 5 3 7 2 3 3 7 1 6 1 7 2 5 3 4 4 3 6 4 1 8 7 3 5 2 출력예제 1 10 풀이 2차원 배열 탐색 문제 2차원 배열의 한위치에서 상하좌우와 비교해 값이 더 크면 봉우리가 되고 이를 카운팅한다. - 주의해야 할 점 (1) 범위가 n=50까지 들어갈 수 있기 때문에 배열 선언시에는 전역으로 a[51][51] (2) flag값을 설정해서 상하좌우와 비교했을 때 기준이 되는 값보다 큰 값이 하나라도 나오면 바로 break하는 구문이 필요 - 생각해야 할 점 (1) 2차원 배열의 한 위치에..
46. 멀티태스킹(카카오 먹방 문제 변형)
·
알고리즘
인프런 - it 취업을 위한 알고리즘 문제풀이 (with C/C++) : 코딩테스트 대비 강의를 바탕으로 공부한 내용입니다. 문제는 비공개로 입력예제와 출력예제만을 가지고 포스팅 입력예제 1 3 1 2 3 5 출력예제 1 3 풀이 - 시뮬레이션 문제, 45-공주구하기 문제와 비슷한 로직 - 주의해야 할 점 (1) 배열 크기가 클 때는 전역변수로 선언, 지역변수로 선언 시 잘못된 값이 들어갈 수 있으나 전역변수로 선언 시 0으로 모두 초기화 (2) 총 작업의 크기와 정전되는 시간이 같거나, 정전되는 시간이 더 클 시에는 정전 된 후에 할 작업이 없음 => 이때는 -1을 출력함 (3) 정전이 되고 난 후에 해야할 작업의 값이 0이라면, 그 다음 값을 찾아서 출력해주어야 함 - 생각해야 할 점 (1) 총 작업..
45. 공주구하기
·
알고리즘
인프런 - it 취업을 위한 알고리즘 문제풀이 (with C/C++) : 코딩테스트 대비 강의를 바탕으로 공부한 내용입니다. 문제는 비공개로 입력예제와 출력예제만을 가지고 포스팅 입력예제 1 8 3 출력예제 1 7 풀이 - 시뮬레이션 문제 - 8명의 왕자를 시계방향, 3번째에 해당하는 왕자를 한명씩 추방 - 입력 변수: n, k(왕자 수, 특정 수) - 풀이법 (1) 벡터배열 0으로 초기화 (2) 무한루프를 돌며 position값을 증가 => 배열의 값이 0이면 cnt++ (3) cnt==k가 될때 cnt를 0으로 초기화, bp++, 해당 위치에 1 넣어줌 (4) 루프를 돌다가 position값이 n보다 커질때, 1로 다시 초기화 => if(pos>n) pos=1; (5) 루프 돌다가 bp가 n-1, 즉..
44. 마구간 정하기
·
알고리즘
인프런 - it 취업을 위한 알고리즘 문제풀이 (with C/C++) : 코딩테스트 대비 강의를 바탕으로 공부한 내용입니다. 문제는 비공개로 입력예제와 출력예제만을 가지고 포스팅 입력예제 1 53 1 2 8 4 9 출력예제 1 3 풀이 - 이분탐색 응용 - 마구간 개수 n의 범위가 광범위하므로, 동적할당 해준다 > 프로그램 종료 전 delete - 마구간 좌표는 수직이고, 그 사이 거리들에 대한 정보가 필요함 > 정렬 필요, sort함수 사용 - mid: 이분탐색 시 키 값, 3마리의 말을 수용할 수 있을 시에 res값을 mid값으로 설정 이분탐색 시 상황 (1) 해당 mid값이 3마리의 말 수용 가능할 때 > 3마리의 말을 수용할 수 있는 mid보다 큰 수는 당연히 3마리의 말을 수용할 수 있음 > 문..
43. 뮤직비디오
·
알고리즘
인프런 - it 취업을 위한 알고리즘 문제풀이 (with C/C++) : 코딩테스트 대비 강의를 바탕으로 공부한 내용입니다. 문제는 비공개로 입력예제와 출력예제만을 가지고 포스팅 입력예제 1 9 3 1 2 3 4 5 6 7 8 9 출력예제 1 17 풀이 - DVD 3개만으로 9개의 곡을 나누어 담아야함 -모든 곡을 담을 때 필요한 용량은 1+2+3+4+5+6+7+8+9 즉, (9+10)/2인 45 - 1~45사이에 DVD한개의 최소 용량이 있다 - 정답이라고 유추한 mid값은 항상 maxx값 보다 커야 한다(DVD는 배열에서 가장 큰 용량을 가진 노래를 담을 수 있어야 하기 때문) ex) 1+45/2 = 23 (1,2,3,4,5,6),(7,8),(9) -> res = 23, rt=22 23보다 더 작은 ..
24. 이분검색
·
알고리즘
인프런 - it 취업을 위한 알고리즘 문제풀이 (with C/C++) : 코딩테스트 대비 강의를 바탕으로 공부한 내용입니다. 문제는 비공개로 입력예제와 출력예제만을 가지고 포스팅 입력예제 1 8 32 23 87 65 12 57 32 99 81 출력예제 1 3 풀이 lt mid rt else if(a[mid]
19. 분노유발자
·
알고리즘
인프런 - it 취업을 위한 알고리즘 문제풀이 (with C/C++) : 코딩테스트 대비 강의를 바탕으로 공부한 내용입니다. 입력예제 1 10 56 46 55 76 65 53 52 53 55 50 출력예제 1 3 풀이 처음 생각한 풀이법 56 46 55 76 65 i j j j cnt = 1 cnt = 2 break - i를 고정시키고 j로 for문을 돌면서 뒤의 숫자들과 비교 - 뒤의 모든 숫자들보다 i번째 숫자가 크다면 분노유발자 - cnt 변수를 사용해서 i가 j보다 클 시 cnt를 증가, cnt카운트가 뒤의 숫자의 갯수와 일치할 시 분노유발자 코드 #include using namespace std; int main(){ int n, height[101]; int res = 0; int cnt =..
18. 층간소음
·
알고리즘
인프런 - it 취업을 위한 알고리즘 문제풀이 (with C/C++) : 코딩테스트 대비 강의를 바탕으로 공부한 내용입니다. 입력예제 1 10 90 23 17 120 34 112 136 123 23 25 113 출력예제 1 3 풀이 풀이법 - cnt 변수를 한계치를 넘을 때마다 증가시킨다 - 한계치를 넘지 않을 시 cnt를 0으로 초기화 시킨다 - 비교시 cnt가 max보다 클 시 max값을 교체 시킨다 코드 #include using namespace std; int main(){ int num, limit, a; int cnt = 0; int max = -2147000000; cin >> num >> limit; for(int i = 0; i > a; if(a > li..
13. 가장 많이 사용된 자릿수
·
알고리즘
인프런 - it 취업을 위한 알고리즘 문제풀이 (with C/C++) : 코딩테스트 대비 강의를 바탕으로 공부한 내용입니다. 입력예제 1230565625 출력예제 5 풀이 알아야 할 지식 - 자연수의 길이가 100이기 때문에 int형으로 입력이 아닌 char형으로 입력을 받음 - 문자열의 마지막까지 반복 > 널문자를 만날때까지 : ( arr[i] != '\0') - 전역 배열로 선언 시 모든 값이 0으로 초기화 - max값은 -274000000으로 초기화 풀이법 - 카운팅 배열 생성 후 해당 인덱스의 카운트를 업데이트 - 카운팅 배열에서 가장 많이 카운팅 된 index를 찾는다 > ch[i]의 값이 아닌 i의 값이어야 함 - 답이 여러개일 경우, 가장 큰 수인 인덱스을 찾아야 함 > max > a; fo..
STL과 Vector&iterator
·
알고리즘
**생능출판사의 C++ Programming을 공부한 내용입니다. STL이란?C++에서 제공하는 표준 템플릿 라이브러리템플릿으로 작성된 많은 제네릭 클레스와 함수 라이브러리 STL의 구성요소1. container: 템플릿 클래스, 데이터를 담아두는 자료구조를 구현한 클래스ex) 리스트, 큐, 스택, 맵, 셋, 백터 등 2. iterator: 컨테이너 원소에 대한 포인터, 반복자라고 불림, 여러 타입의 iterator가 있음 3. 알고리즘: 컨테이너의 원소에 대한 복사, 검색, 삭제, 정렬 등의 기능을 구현한 템플릿 함수 Vector란?가변 길이 배열을 구현한 제네릭 클래스스스로 내부 크기를 조절시작 인덱스 0 Vector 사용법 vector객체 생성vector v; vector에 원소 삽입: push_b..