일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 #플러터
- baekjoon #백준 #boj
- 비주얼 스튜디오 #vs #visual studio
- unity #2d-game #minigame #vscode
- boj #baekjoon #c++
- flutter #깃
- 백준 #boj
- flutter #app #취준
- flutter #상태관리
- flutter #git
- 백준 #boj #baekjoon
- 유데미 #udemy #웅진씽크빅 #스나이퍼팩토리 #인사이드아웃 #미래내일일경험 #프로젝트캠프 #부트캠프 #react #리액트프로젝트 #프론트엔드개발자양성과정 #개발자교육과
- flutter #firebase #플러터 #파이어베이스 #연동
- boj #c++
- baekjoon #boj #c++
- unity #2d-game
- 로컬저장소 #이름변경
- Flutter
- 인턴 #프론트엔드 #개발자 #프론트엔드개발자 #취준
- flutter #플러터 #분석
- #유데미 #udemy #웅진씽크빅 #스나이퍼팩토리 #인사이드아웃 #미래내일일경험 #프로젝트캠프 #부트캠프 #react #리액트프로젝트 #프론트엔드개발자양성과정 #개발자교육과정
- flutter #todolist
- boj #baekjoon
- 백준
- 백준 #c++
- firebase #파이어베이스
- 비주얼스튜디오 #코드스니펫
- 플러터 #flutter #restful #rest api
- VS #비주얼스튜디오
- git #unity #깃허브
- Today
- Total
목록분류 전체보기 (150)
cococo-coding
문제 풀이 브론즈 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] ..
처음에 c++을 배울때 대부분 endl을 쓰길래, 그 문법에 익숙해져서 백준을 풀 때에도 개행이 필요하면 항상 cout
문제 풀이 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
문제 풀이 아스키코드를 활용해야 하는 문제이다. 테스트케이스 개수t를 입력받고 while문으로 돌린다. 입력받을 수x를 string으로 선언하고, 각 수가 나온 횟수를 셀 카운팅 배열 arr[10]을 선언하고 0으로 초기화해준다. for문을 이용해 입력받은 수는 string이므로 문자형태이다. 즉, 아스키코드로 인식이 되는 상황이기 때문에 문자0('0')을 빼주어야 한다. (문자 0은 아스키코드로 48이다) s[i]-48을 arr의 인덱스인수로 넣어주고, 증가시켜준다. 그리고 arr배열을 for문으로 돌리면서 0이 아닌 수를 만나면 cnt를 증가시켜주고 최종적으로 cnt를 출력해준다. 포인트 문자0 은 아스키코드로 48이므로, 숫자로 쓰려면 48을 빼주어야 한다. 만약 위의 방법처럼 하지 않고, 바로 출..
문제 풀이 테스트케이스 개수t를 입력받고 while문으로 반복한다. 케이스별로 E(X)=(aX+b)mod 26에 들어갈 a, b값과 평문s를 입력받는다. 이때 우리가 사용할 코드체계는 문제에 나와있는 A=0, B=1, ..., Z=25이고 출력되는 형태는 아스키코드이다. for문을 이용하여 string을 입력받았을 때, 이 문자열은 아스키코드이므로 우리가 원하는 코드체계로 변경해주어야 한다. s[i]-65로 이를 구현한다. ex) 예제에서 "IAMSPY"라는 문자열을 입력했을 때, 'I'라는 문자는 아스키코드로 73이다. 우리가 문제에서 쓰는 체계로 변경하려면 'I'=8이 되어야하므로 원래 코드에서 65를 빼준다. 그리고 원래의 E(X)식대로 E(X)=(aX+b)mod 26를 구현해준다. (X=s[i]-..