분류 전체보기
-
[C++] memset과 fill의 차이/2차원 배열 초기화 함수Programming/C++ 2020. 5. 2. 15:01
배열 또는 벡터를 초기화할 때 memset과 fill을 자주 사용한다 memset 헤더파일을 포함하여 사용한다 memset(배열 이름, 초기화 값, 배열 크기); ( ex. memset(visit, false, sizeof(visit)); ) 1바이트 단위로 메모리를 초기화하기 때문에 배열값을 0으로 초기화 할 때 주로 사용한다 하지만 bool형이 아닌 배열을 1로 초기화는 불가능하다 위의 사진처럼, int형은 4바이트 중 1바이트 단위로 1로 초기화하기 때문에 10000000100000000... 이 되어 위와 같은 값이 나온다 그렇기 때문에 bool형 배열 초기화 혹은 0으로 초기화할 때 사용하자 fill 헤더파일을 포함하고 std namespace를 사용한다 fill(시작 위치, 끝나는 위치 +1,..
-
[STL] vector 생성자, 함수 및 iterator 사용법Programming/C++ 2020. 5. 1. 00:53
C++에서 사용되는 벡터(vector)는 배열과 유사한 자료구조지만 자동 크기 조절과 객체의 추가 삭제를 제공한다 크기가 가변적이거나 객체의 추가 및 삭제가 자주 일어날 때, 동적인 상황에서 자주 사용한다😲 사용 시 헤더 파일을 추가하고, using namespace std;를 표기해주어야 한다 vector var_name 으로 선언한다 생성자 vector v : 빈 vector 생성 vector v (n) : 기본값으로 초기화된 n개의 원소를 가진 vector 생성 vector v (n, x) : x값으로 초기화된 n개의 원소를 가진 vector 생성 vector v (v2) : v2 vector의 복사본 생성 자주쓰는 멤버함수 v.assign(n, x) : v에 x값으로 n개의 원소 할당 v.at(i..
-
[BOJ]백준 17252/17253번: 삼삼한 수, 삼삼한 수2Problem Solving/BOJ(백준) 2020. 4. 30. 14:46
https://www.acmicpc.net/problem/17252 17252번: 삼삼한 수 첫째 줄에 2,147,483,647보다 작거나 같은 음이 아닌 정수 N이 입력된다. www.acmicpc.net 3의 거듭제곱인 수들을 중복해서 사용하지 않고 더해서 삼삼한 수 X가 될 수 있는지 구하는 문제 중복이 허용되지 않는 조건때문에 단순한 재귀함수로 구현가능했다 예제1에서, X가 109일 경우 109보다 작은 81까지 배열에 저장해준다 index 0 1 2 3 4 5 n[index] 1 3 9 27 81 243 include O X X O O - ① 일단 X보다 작은 3의 거듭제곱 수들을 순서대로 배열에 저장하고 ② 재귀함수를 호출, 내림차순으로 배열을 돌면서 그 숫자를 더할지or안더할지를 호출해준다 ③..
-
C/C++ 데이터 형식 범위(int, double, long long 범위)Programming/C++ 2020. 4. 30. 13:28
유형 이름 바이트 범위 (signed)int 4 -2,147,483,648 ~ 2,147,483,647 unsigned int 4 0 ~ 4,294,967,295 char 1 -128 ~ 127 unsigned char 1 0 ~ 255 short, (sighed)short int 2 -32,768 ~ 32,767 (signed)long long 8 -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 unsigned long long 8 0 ~ 18,446,744,073,709,551,615 bool 1 true or false float 4 3.4E+/-38(7개의 자릿수) double 8 1.7E+/-308(15개의 자릿수) 코딩할 때 자주 쓰는 변수 자..
-
[BOJ]백준 17472번: [삼성 A형 기출문제] 다리 만들기2 (풀이 및 반례)Problem Solving/BOJ(백준) 2020. 4. 29. 22:43
https://www.acmicpc.net/problem/17472 17472번: 다리 만들기 2 첫째 줄에 지도의 세로 크기 N과 가로 크기 M이 주어진다. 둘째 줄부터 N개의 줄에 지도의 정보가 주어진다. 각 줄은 M개의 수로 이루어져 있으며, 수는 0 또는 1이다. 0은 바다, 1은 땅을 의미한다. www.acmicpc.net 다리를 놓아 모든 섬을 연결할 수 있을 때, 다리 길이의 합의 최솟값을 찾는 문제이다. 다리는 1️⃣ 섬끼리 인접한 바다에서만 직선으로 설치할 수 있다 2️⃣ 중간에 방향전환을 할 수 없다 3️⃣ 길이는 2 이상이다 라는 조건을 가지고 있다 위의 그림에서, 초록색으로 칠해진 부분이 다리를 설치할 수 있는 부분이다. 그래서 각각의 구역에서 BFS를 돌려 섬 번호를 나누고, 섬 ..
-
[BOJ]백준 15953번: [카카오 코드 페스티벌] 상금 헌터Problem Solving/BOJ(백준) 2020. 4. 29. 00:07
https://www.acmicpc.net/problem/15953 15953번: 상금 헌터 첫 번째 줄에 제이지가 상상력을 발휘하여 가정한 횟수 T(1 ≤ T ≤ 1,000)가 주어진다. 다음 T개 줄에는 한 줄에 하나씩 제이지가 해본 가정에 대한 정보가 주어진다. 각 줄에는 두 개의 음이 아닌 정수 a(0 ≤ a ≤ 100)와 b(0 ≤ b ≤ 64)가 공백 하나를 사이로 두고 주어진다. www.acmicpc.net 단순 구현 문제(난이도 하)지만 신경써서 풀지 않으면 나처럼 5번씩 틀리게 된다 ^^ 풀이 방법은 입력을 받기 전 제1회 -> 1등 1명, 2등 2명, 3등 3명, ... 을 배열에 넣어준다 [1,2,2,3,3,3,4,4,4,4, ...] 제2회 -> 1등 1명, 2등 2명, 3등 4명,..
-
SWEA 5653번: [모의 SW 역량테스트] 줄기세포 배양하기Problem Solving/SWEA 2020. 4. 22. 17:24
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXRJ8EKe48DFAUo SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 모의 역량테스트 중 하나인 줄기세포 배양하기 문제!! 요즘 출제되는 전형적인 시뮬레이션 문제이당(이동, 번식, 등등 시간 경과 후 결과) 생명력 X를 가진 비활성 세포는 X시간 후 활성 세포가 되고 활성 세포는 첫 1시간에 상하좌우로 번식(한 칸에 여러 세포가 시도할 경우 가장 큰 생명력을 선택), X시간 후에는 죽은 세포가 된다 이 문제 또한 각각의 자료를 저장 및 연산할 자료구조를 잘 선택해야 ..
-
SWEA 5656번: [모의 SW 역량테스트] 벽돌 깨기Problem Solving/SWEA 2020. 4. 22. 00:52
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXRQm6qfL0DFAUo SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 모의 역량테스트 두 번째 풀이 벽돌깨기다 알고리즘 짜는데는 5분도 안 걸렸는데 디버깅에서 막혔다 ㅠㅠ 전형적인 DFS를 이용한 경우의 수 완전탐색 문제이다 1. N번 이동을 끝내고 나면 남은 벽돌의 개수 세주기 2. 턴마다 해당 열의 맨 위의 벽돌 깨기 & 중력 연산 수행 이 두가지만 잘 해주면 된다 나는 벽돌깨는 함수boom(), 중력 작용하는 함수gravity()를 이동의 경우의수(N번이동했을 ..