일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 블로그개설
- 스프링 프레임워크
- 스프링
- Kotlin
- hackerrank
- Map
- DP
- 안드로이드
- 프로그래밍
- stl
- 스프링프레임워크
- BFS
- c
- Android
- 백준
- git
- c++
- spring
- python3
- 연결리스트
- TensorFlow
- 카카오인코더
- 머신러닝
- 백트래킹
- vue.js
- 프로그래머스
- ADAS
- 인코더
- Rebase
- retrofit
- Today
- Total
목록c++ (25)
이것저것 공부한 기록
현재 문자의 종류 알아보는 함수 ctype.h에 포함 isalpha(char a) a가 영문 알파벳인지 검사 isupper(char a) a가 대문자 알파벳인지 검사 islower(char a) a가 소문자 알파벳인지 검사 isascii(char a) a가 7비트 ascii문자인지 검사 isdigit(char a) a가 숫자인지 검사 isxdigit(char a) a가 16진수 숫자인지 검사( 0~9, a~f, A~F ) isalnum(char a) a가 알파벳과 숫자인지 검사
거의 push랑 참조밖에 안 쓰는거 같긴 한데... 메모리가 연속하게 저장되기 때문에, []나 at으로 읽는 속도는 빠르다 또한 다른 표준 컨테이너들과 비교할 때, 컨테이너의 끝에 새로운 원소를 삽입/삭제하는 시간이 효율적이다. 그러나 때문에 끝이 아닌 중간에 삽입하는 작업은 느리게 동작한다. 원소를 추가해서 size의 크기가 capacity를 넘어가버리면 내부적으로 추가적인 공간을 할당한다. 추가적으로 할당되는 공간은 거의 현재 벡터의 capacity만큼 할당된다 -> 즉, 전체 할당 크기가 이전의 두배가 됨. 벡터의 capacity를 확장하는 것 = 메모리를 새로 할당, 벡터의 내용을 복사 이기 때문에 꽤 시간이 걸림. 많은 원소를 추가해야 하는 경우 vector::reserve를 사용하여 capac..
https://programmers.co.kr/learn/courses/30/lessons/42577 코딩테스트 연습 - 전화번호 목록 | 프로그래머스 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 4421 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 r programmers.co.kr String을 갖고있는 Vector를 sort한 뒤 앞에서부터 검사한..
https://www.hackerrank.com/challenges/two-strings/problem?h_l=interview&playlist_slugs%5B%5D=interview-preparation-kit&playlist_slugs%5B%5D=dictionaries-hashmaps Two Strings | HackerRank Given two strings, you find a common substring of non-zero length. www.hackerrank.com 문제 자체는 간단한데 푸는 방법을 새롭게 알아서 포스팅하기. 원래대로... 각 문자가 있는지 없는지 2중 for문을 무식하게 돌렸는디 이번에 그렇게 짰더니 인풋 string 최대 길이가 10의 5승이라서 그런가 시간초과가 3..
https://www.hackerrank.com/challenges/ctci-ransom-note/problem?h_l=interview&playlist_slugs%5B%5D=interview-preparation-kit&playlist_slugs%5B%5D=dictionaries-hashmaps Hash Tables: Ransom Note | HackerRank Given two sets of dictionaries, tell if one of them is a subset of the other. www.hackerrank.com Hash / Map stl에 대해서 공부하기 위해 집어든 문제 갯수까지 파악해야한다는 조건을 첨에 못 봐서 문자열을 하나하나 비교하고 있었는데, 6 5 two times t..
조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니다. 조건 3. n의 다음 큰 숫자는 조건 1, 2를 만족하는 수 중 가장 작은 수 입니다. 첨엔 규칙을 찾아보려고 발버둥을 쳤는데.. .... 그저 n+1부터 N과 1 갯수가 같은 수가 나올 때 까지 전부 탐색하면 되는 문제였다. 다만 탐색하는 방법을 좀 더 효율적으로 할 수 있을 것 같은데, 그게 영 안돼 ㅠ ; 범위라도 줄여서 구현했다. 원래는 n+1이라도 제외할까 했는데, 생각해보니 1의 다음 큰 숫자는 2라서 걍 패스. 하나 덜 본다고 줄일 수 있을 리도 없고. #include #include using namespace std; int main() { int ..
1-1. 입력된 수가 짝수라면 2로 나눕니다. 1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다. 2. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다. 예를 들어, 입력된 수가 6이라면 6→3→10→5→16→8→4→2→1 이 되어 총 8번 만에 1이 됩니다. 위 작업을 몇 번이나 반복해야하는지 반환하는 함수, solution을 완성해 주세요. 단, 작업을 500번을 반복해도 1이 되지 않는다면 –1을 반환해 주세요. 백준 문제 풀다가 프로그래머스에서도 풀어봐야 할 것 같아서 사이트 이동. 전체적으로 좀.. 백준 문제보다 더러운 문제가 많구나 생각했는데 생각해보니 프로그래머스에서도 dp를 찾아서 풀면 깔끔한 문제가 많겠군 해서 음. 무튼 이 문제 자체는 굉장히 간단했다. 그러나 계산과정에..
https://www.acmicpc.net/problem/2011 앞의 자리수와 합쳐서 검사 안 해도 되니까 i-1을 더한다. 받은 수와 앞자리를 합쳐서 10보다 크고 26보다 작다 -> 앞의 자리수랑 합쳐서 생각해야되니까 i-2를 더한다 -> 두가지 모두 만족하지 못할 경우는 즉시 계산을 종료한다. 정도로 짜볼 수 있겠습니다~~~ 이래저래 정리해서.. 코드를 짜면 됩니다. 더러워서 맘에 안들지만... 더 생각하기 싫었다. #include int main(void) { int cnt; int pass[5001][2] = { 0, }; scanf("%1d", &pass[1][0]); cnt = 1; if (pass[1][0] != 0) { pass[1][1] = 1; pass[0][1] = 1; } whi..