DB가 무엇이고 왜 쓸까? DB를 쓰는 이유 데이터를 오프라인으로 캐비넷에 저장하자니 물리적 저장 공간은 한정되어 있다. 그렇다고 엑셀 파일을 만들어서 암호를 걸어쓴다면 암호가 해킹당하면 데이터가 다 털림... 그래서 데이터베이스를 이용해 고객 정보를 관리하는 것. DBMS 데이터베이스 관리 시스템 DB에서 필요한 데이터를 검색하거나 삽입, 수정, 삭제하기 위한 프로그램 ORACLE, MySQL 등이 있다. 오라클, 마이 SQL이 DB 자체가 아니다. 마이 SQL을 사용하면 마이 SQL을 사용한 DB 프로그램이다! 라고 함 RDBMS 관계형 DBMS 시중에 나와있는 대부분의 DBMS라고 보면 된다. SQL 데이터 액세스를 위해 ORACLE server와 통신하는 언어. DB와 소통하기 위한 언어. 모든 ..
도로 위에 세워진 집중국들의 수신 영역 길이의 최소합을 구하는 문제 문제 한국도로공사는 고속도로의 유비쿼터스화를 위해 고속도로 위에 N개의 센서를 설치하였다. 문제는 이 센서들이 수집한 자료들을 모으고 분석할 몇 개의 집중국을 세우는 일인데, 예산상의 문제로, 고속도로 위에 최대 K개의 집중국을 세울 수 있다고 한다. 각 집중국은 센서의 수신 가능 영역을 조절할 수 있다. 집중국의 수신 가능 영역은 고속도로 상에서 연결된 구간으로 나타나게 된다. N개의 센서가 적어도 하나의 집중국과는 통신이 가능해야 하며, 집중국의 유지비 문제로 인해 각 집중국의 수신 가능 영역의 길이의 합을 최소화해야 한다. 편의를 위해 고속도로는 평면상의 직선이라고 가정하고, 센서들은 이 직선 위의 한 기점인 원점으로부터의 정수 거..
토마토들이 완전히 익으려면 며칠이 걸리는지 계산하는 문제 문제 철수의 토마토 농장에서는 토마토를 보관하는 큰 창고를 가지고 있다. 토마토는 아래의 그림과 같이 격자 모양 상자의 칸에 하나씩 넣어서 창고에 보관한다. 창고에 보관되는 토마토들 중에는 잘 익은 것도 있지만, 아직 익지 않은 토마토들도 있을 수 있다. 보관 후 하루가 지나면, 익은 토마토들의 인접한 곳에 있는 익지 않은 토마토들은 익은 토마토의 영향을 받아 익게 된다. 하나의 토마토의 인접한 곳은 왼쪽, 오른쪽, 앞, 뒤 네 방향에 있는 토마토를 의미한다. 대각선 방향에 있는 토마토들에게는 영향을 주지 못하며, 토마토가 혼자 저절로 익는 경우는 없다고 가정한다. 철수는 창고에 보관된 토마토들이 며칠이 지나면 다 익게 되는지, 그 최소 일수를 알..
주어지는 문장에서 단어가 몇 개인지 세는 문제 문제 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다. 입력 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열은 공백으로 시작하거나 끝날 수 있다. 출력 첫째 줄에 단어의 개수를 출력한다. 풀이 예제들을 보니까 공백으로 띄어져 있으면 무조건 단어 개수로 세는 것 같아서 stringstream을 사용해서 풀었습니다. stringstream은 공백과 줄바꿈('\n') 단..
OX퀴즈 결과로 최종 점수를 맞히는 문제 문제 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수는 3이 된다. "OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다. OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 길이가 0보다 크고 80보다 작은 문자열이 주어진다. 문자열은 O와 X만으로 이루어져 있다. 출력 각 테스트 케이스마다 점수를 출력한다. 풀이 높은 정답률(50% 이상)만큼 풀이 과정을 ..
N 자리수를 가진 2진 수열을 만들 수 있는 경우의 수를 구하는 문제 문제 지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이의 공부를 방해하기 위해 0이 쓰여진 낱장의 타일들을 붙여서 한 쌍으로 이루어진 00 타일들을 만들었다. 결국 현재 1 하나만으로 이루어진 타일 또는 0타일을 두 개 붙인 한 쌍의 00타일들만이 남게 되었다. 그러므로 지원이는 타일로 더 이상 크기가 N인 모든 2진 수열을 만들 수 없게 되었다. 예를 들어, N=1일 때 1만 만들 수 있고, N=2일 때는 00, 11을 만들 수 있다. (01, 10은 만들 수 없게 되었다.) 또한 N=4일 때는..
저는 최근에 c++에서 벡터를 포함한 컨테이너를 사용할 때 데이터를 삽입할 일이 있으면 위와 같이 emplace_back(queue 종류에서는 emplace)을 많이 쓰고 있습니다. 코딩 테스트용 알고리즘을 공부하는 책에서 emplace_back이 메모리 할당을 하는 동시에 값을 삽입하기 때문에 push_back보다 속도가 더 빠르다고 하길래 그 이후로는 최적화에 조금이나마 도움이 되라고 쭉 emplace_back을 써 왔죠. 근데 쓰다 보면 emplace_back이 가능하지 않고 push_back으로만 해결되는 경우도 있어서 정확한 차이가 궁금해져서 찾아봤습니다. 시작 전에 한 줄 요약하면 push_back은 객체를 삽입하기 위해서 똑같은 임시 객체를 하나 더 만들어서 거기에 복사한 다음 벡터에 삽입 ..
숫자가 써진 카드를 규칙에 따라 합쳤을 때 카드에 써진 숫자들의 최소 합을 구하는 문제 문제 석환이는 아기다. 아기 석환이는 자연수가 쓰여져있는 카드를 갖고 다양한 놀이를 하며 노는 것을 좋아한다. 오늘 아기 석환이는 무슨 놀이를 하고 있을까? 바로 카드 합체 놀이이다! 아기 석환이는 자연수가 쓰여진 카드를 n장 갖고 있다. 처음에 i번 카드엔 ai가 쓰여있다. 카드 합체 놀이는 이 카드들을 합체하며 노는 놀이이다. 카드 합체는 다음과 같은 과정으로 이루어진다. x번 카드와 y번 카드를 골라 그 두 장에 쓰여진 수를 더한 값을 계산한다. (x ≠ y) 계산한 값을 x번 카드와 y번 카드 두 장 모두에 덮어 쓴다. 이 카드 합체를 총 m번 하면 놀이가 끝난다. m번의 합체를 모두 끝낸 뒤, n장의 카드에 ..
- Total
- Today
- Yesterday
- 애플
- c++
- c언어
- 컴퓨터사이언스
- 깊이우선탐색
- greedy
- BFS
- 컴퓨터
- 해커랭크
- 코딩공부
- DFS
- 캐나다생활
- 알고리즘
- 스위프트플레이그라운드
- 아이패드
- 캐나다
- 영어공부
- 프로그래밍
- hackerrank
- 문제풀이
- 프로그래머스
- 하드웨어
- 다이나믹프로그래밍
- 기초
- 너비우선탐색
- 백준
- 컴퓨터공부
- dp
- 그리디
- C언어기초
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |