
풀이 과정 1. 예시를 통해서 A에서는 작은 수부터, B에서는 큰 수부터 곱해지는 걸 알 수 있다. 2. sort함수를 이용해서 A, B를 정렬한다. 3. A와 B의 길이가 같으니 for문을 통해서 A는 0부터, B는 뒤에서부터 곱해주며 answer에 더한다. #include #include #include using namespace std; int solution(vector A, vector B) { int answer = 0; sort(A.begin(), A.end()); sort(B.begin(), B.end()); for(int i=0;i

풀이 과정 1. 현재의 숫자에서 그 윗줄의 숫자를 더하는 방식 2. 배열의 길이가 각 열마다 다르기 때문에 0과 triangle[i].size()-1은 따로 조건을 빼주기 3. 위의 범위에 해당하지 않는 j는 윗줄의 좌,우를 비교해보기 #include #include using namespace std; int solution(vector triangle) { int answer = triangle[0][0]; int index=0; for(int i=1;i

풀이 단계 1. s가 1이 될 때까지 반복한다. 2. s에서 현재 0의 개수(tmp_zero)를 구한다. 3. 0을 제외한 길이(tmp)를 구한다. 4. 해당 수를 이진변환해준다. 5. 변환한 횟수, 변환 과정에서 제거된 모든 0의 개수를 더한다. #include #include using namespace std; string to_binary(int num) { string s = ""; while (num != 0) { s += num % 2 == 0 ? '0' : '1'; num /= 2; } return s; } vector solution(string s) { vector answer; int zero_count = 0, change_count = 0, tmp, tmp_zero = 0; //p..

풀이 과정 1. tmp라는 문자열을 만들어 문자를 회전시킨다. - substr()을 사용하여 범위를 지정해주었다. 2. checkBracket()라는 함수를 만들어 해당 tmp가 맞게 되어있는지 true, false로 반환해주었다. 3. checkBracket함수는 '(', '[', '{' 인 문자가 들어오면 push하고, ')', '}', ']' 인 문자가 들어오면 pop을 해주는 형식으로 구현했다. + '(', '{', '[' 인 문자가 없는 상태에서 pop을 할 수 있기에 조건을 추가했다. #include #include #include using namespace std; stack st; char small[]={'(',')'}; char middle[]={'[',']'}; char large[..

+ system call - 사용자와 커널 사이를 연결해주는 매개체 1. User Interface - CLI를 통해서 command 터미널 입력으로 입력할 수 있다. => shell: 해석기 ex) BASH, cmd - 최근에는 GUI로 넘어온 추세이며 이는 사용자가 더 사용하기 편리하다. - TSUI (Touch Sreen User Interface) 2. System Call - OS에서 서비스를 받고 싶으면 system call을 한다. => user mode에서 kernel mode로 도움을 요청하는 것이다. 위의 그림처럼 커널에게 부탁해서 기능이 다시 돌아가는 것을 알 수 있다. +) system call 구현 : user mode에서 함수가 실행되면 kernel mode에서 system ca..

문제 설명 이 문제에서 그나마 좋았던 점은 바로 넉넉한 시간과 넉넉한 메모리 제한이었다. 여기서 제일 중요한 점은 벽을 꼭 3개를 세워야 한다는 점이었다. 바이러스가 퍼지지 않은 빈 칸에 벽이 세워질 수 있음을 기억해야한다. 코드 #include #include using namespace std; int N,M,ans=0; int map[8][8],dx[]={-1,1,0,0}, dy[]={0,0,-1,1}; int tmp[8][8]; queueq; //void print(){ //int i,j; //for(i=0;i

이 문제는 이분탐색, 매개 변수 탐색 문제 중에서 쉬운 편이라고 생각했다. (비록 여러 번 틀렸지만..^^) 문제 설명 그대로 정해진 총액 M이하에서 가능한 최대의 총 예산을 배정하는 문제이다. 배정될 수 있는 경우엔 요청 금액을 그대로 배정하고, 그렇지 않은 경우엔 상한선을 배정한다. findLimit함수를 통해서 현재 정한 상한선(money)을 기준으로 M만큼 줄 수 있는 지 확인했다. result를 통해서 findLimit에서 참인 경우 해당 돈을 저장했다. 틀렸던 이유: left값을 처음에 입력받은 예산들 중 가장 작은 값을 넣어서 틀렸다. #include #include using namespace std; int N, M; int city[10004]; bool findLimit(int mon..
- Total
- Today
- Yesterday
- 뉴스클러스터링
- ubuntu
- 운영체제
- 시스템콜
- OS
- 이진변환반복하기
- 우분투설치
- 프로그래머스
- dp
- 다음큰숫자
- 정수삼각형
- AWS
- 응답코드
- 최고의집합
- Auditing
- springboot
- 실패율
- 최솟값구하기
- xv6
- PasswordEncoder
- RDS
- 백준
- 머신러닝
- Android
- 영어끝말잇기
- 프리티어
- PostgreSQL
- qemu
- interrupt
- 괄호회전하기
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |