일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- flutter #상태관리
- flutter #firebase #플러터 #파이어베이스 #연동
- 플러터 #flutter #restful #rest api
- Flutter
- firebase #파이어베이스
- 백준
- boj #c++
- flutter #플러터 #분석
- flutter #플러터
- flutter #todolist
- 인턴 #프론트엔드 #개발자 #프론트엔드개발자 #취준
- unity #2d-game #minigame #vscode
- flutter #git
- 유데미 #udemy #웅진씽크빅 #스나이퍼팩토리 #인사이드아웃 #미래내일일경험 #프로젝트캠프 #부트캠프 #react #리액트프로젝트 #프론트엔드개발자양성과정 #개발자교육과
- 비주얼 스튜디오 #vs #visual studio
- 백준 #boj
- 로컬저장소 #이름변경
- 백준 #c++
- flutter #깃
- unity #2d-game
- flutter #app #취준
- boj #baekjoon
- baekjoon #백준 #boj
- VS #비주얼스튜디오
- 백준 #boj #baekjoon
- git #unity #깃허브
- #유데미 #udemy #웅진씽크빅 #스나이퍼팩토리 #인사이드아웃 #미래내일일경험 #프로젝트캠프 #부트캠프 #react #리액트프로젝트 #프론트엔드개발자양성과정 #개발자교육과정
- 비주얼스튜디오 #코드스니펫
- baekjoon #boj #c++
- boj #baekjoon #c++
- Today
- Total
목록[BOJ] 코드 모음 (110)
cococo-coding
풀이 덱(Deque)은 double ended queue 자료구조로 큐(Queue)가 앞뒤로 데이터 추가 및 삭제가 가능해진 구조이다. 덱의 기본적인 함수를 이용해볼 수 있는 문제이다. 명령은 총 8가지가 있으며, 각 명령에 따라 필요한 동작을 취한다. 1,2번은 입력받는 데이터를 num으로 선언하고 받았다. 1. push_front X (앞에 X 삽입) num을 받아 덱의 앞에 삽입한다. dq.push_front(X); 2. push_back X (뒤에 X 삽입) num을 받아 덱의 뒤에 삽입한다. dq.push_back(X); 3. pop_front (앞 데이터 삭제) 덱이 비어있지 않다면 삭제할 앞의 데이터를 dq.front()로 출력한 뒤에 dq.pop_front()로 삭제해준다. 4. pop_b..
문제 풀이 큐에 대한 기본함수를 학습하기 좋은 문제이다. 명령은 push X, pop, size, empty, front, back으로 총 6가지가 있는데 기본함수로 구현할 수 있다. 1. push X (데이터 삽입) X를 입력받고, q.push(X) 처리를 해준다. 따로 출력을 하라는 말은 없으므로 푸쉬만 해준다. 2. pop (데이터 삭제) 큐가 비어있는 경우를 q.empty()로 확인해서 -1을 출력한다. 아니라면 가장 앞에 있는 정수를 q.front()로 출력해주고, q.pop()으로 삭제해준다. 3. size (큐의 사이즈) 큐의 사이즈를 q.size()로 찾아 출력해준다. 4. empty (큐가 비어있는지 확인) 큐가 비어있는지를 확인해주는 함수다. q.empty()로 확인하고 비어있다면 1을..
문제 풀이 stack에 대한 기본개념과 명령어를 string으로 받아 각 조건에 따라 분기해서 풀어준다. 문제에서 제시한 명령은 push X, pop, size, empty, top 으로 총 5가지이다. 이 명령을 문자열 string str; 로 받아 각각 처리해줄 것이다. 1. push X (데이터 삽입) X를 num으로 입력받고 s.push(num) 처리를 한다. 2. pop (데이터 삭제) 스택이 비어있다면 ( s.empty() ), -1을 출력한다. 아니라면 가장 위의 데이터를 반환한 후에, 이 데이터를 삭제한다. s.top() -> s. pop() 3. size (스택사이즈) 스택의 사이즈를 출력한다. s.size() 4. empty (스택 확인) 위 2번에서 스택이 비어있는지 확인할 때도 이용..
문제 풀이 브론즈 2이지만 정답률이 꽤 낮은 문제이다. 주사위를 4번 던져 각 나온 수별로 리워드값을 계산해야하는데, 같은 눈이 2개씩 두쌍이 나오는 경우와 한쌍이 나오는 경우를 구분해야 한다. 1. 참여자의 수 n을 입력받는다. while문으로 돌려준다. 이때 가장 큰 상금자를 찾을 벡터 vector win; 을 선언하고 같은눈이 2개씩 2쌍이 나오는 경우와 1쌍이 나오는 경우를 구분지을 start 변수도 선언한다. 2. 주사위 수가 몇개씩 나온지 카운팅할 벡터 v(7,0)을 선언해준다. (크기가 7이고, 0으로 채운다는 뜻) for문을 이용해 주사위를 던져 나온 수를 v[수]++; 처리해준다. 3. 이제 규칙에 따라 상금을 정해줄 것이다. for문으로 1부터 6까지 돌려주면서 상금을 구한다. 1) v..
문제 풀이 string을 이용해서 입력을 받고, for문을 이용해 인덱스로 풀어준다. 이때 인덱스는 string의 끝이 아닌, 끝-2 이라는 점을 체크해주자. string으로 문자열을 받았으므로, if문에 써줄때도 s[i]=='J' 이렇게 작은따옴표 안에 넣어주자 코드 #include #include using namespace std; /* 문자열 string 1. 문자열 입력받기 2. JOI와 IOI의 개수 세기 3. 각 개수 출력하기 */ int main() { //1 string s; cin >> s; //2 int len = s.size(); int jcnt = 0, icnt = 0; for (int i = 0; i < len-2; i++) { if (s[i] == 'J' && s[i + 1] ..
문제 풀이 endl을 쓰면 시간초과가 나므로, \n으로 써준다. 벡터와 sort정렬을 이용한다. n을 입력받고, 벡터 v(n)을 선언해주었다. n만큼 for문으로 돌려주면서 벡터의 원소들을 입력받았고, sort정렬로 오름차순 정렬을 해주었다. 정렬된 결과를 다시 출력해야하므로, for문으로 벡터v를 다시 출력해주었다. 이때 정렬된 수들을 출력해줄때, 한 줄에 하나씩 출력을 하는 형태이므로 endl;을 이용해줬는데 계속 시간초과가 떠서 틀렸다.이 endl를 '\n'으로만 바꿔주었더니 바로 문제가 해결됐다. 이 이유는 아래 블로그를 참고했는데, endl와 \n은 둘 다 개행을 해주지만 endl의 경우는 내부 버퍼를 채우기 때문에 더 느리다. 그래서 보통은 \n을 사용해주는 것이 좋다고 한다. (출처: TIP..
문제 풀이 벡터와 sort정렬을 이용한다. n을 입력받는데, 이때 n은 정수 배열 A와 B의 크기인데 배열의 크기를 n으로 넣을 수 없으므로 벡터를 사용했다. vector avec(n); vector bvec(n); 위와 같이 A벡터(avec)와 B벡터(bvec)를 선언하고, 크기는 입력받은 n을 그대로 넣어준다. for문을 이용해 각각의 원소들을 입력받는다. 배열과 동일하게 avec[i], bvec[i]로 써주면 된다. a벡터는 내림차순으로, b벡터는 올림차순으로 정렬한 후에 각 원소끼리 곱해주면 S의 최솟값을 구할 수 있다. a벡터의 입력값 > 1 1 1 6 0 b벡터의 입력값> 2 7 8 3 1 ----------------------------------------- a벡터 내림차순으로 정렬> 6..
문제 풀이 가우스의 공식을 적용해서 풀면 된다. 이때 a가 b보다 작은 수라는 보장은 없으므로 이 부분을 if문으로 분기해서 풀어준다. 코드 #include using namespace std; /* 1. 두 정수 a,b를 입력받는다. 2. 두 정수 사이에 있는 수들의 합을 구한다. 3. 합을 출력한다. */ int main() { //1 long a, b; //int형보다 커야 하므로, long이상으로 잡아주기 cin >> a >> b; //2 if (a