일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 알고리즘 문제
- STUDYENGLISH
- swexpertacademy
- English
- PyQt
- the midnight library
- 원서읽기
- 코테 대비
- 알고리즘
- 원서읽자
- MySQL
- BFS
- 완전탐색
- 코테
- 직무면접
- 프로그래머스
- sw expert
- 코딩테스트
- 원서
- 백준
- sw expert academy
- D4
- nightroutine
- 코테 준비
- 쉬운 알고리즘 문제
- dfs
- 삼성
- englishbook
- SQL
- readingbook
- Today
- Total
목록sw expert academy (6)
시나브로
Solution 그냥 문제 그대로 코딩하면 Pass 할 수 있습니다. 저는 계산을 줄이고자 하다가 오류를 많이 만났습니다. 데이터를 받으면서 list[카드의 수의 값을 가집니다. / 인덱스는 카드의 크기입니다]의 배열에서 갯수를 감소시켜줍니다. -> 각 크기에 따른 남은 카드의 수를 알 수 있습니다. 현재 승현이가 가진 카드의 총합을 알기위해 sum을 계산해줍니다. 이제 sum 변수는 승현이가 21을 만들기 위해 남은 크기를 의미하는 변수로 의미가 변경됩니다. list를 sum까지 돌면서 승현이가 뽑을 수 있는 카드 수를 s로 계산합니다. -> 여기서 sum까지 도는 이유는 list의 인데스는 카드의 크기이기 때문입니다. g 변수를 계산해줍니다. g는 승현이가 뽑으면 안되는 카드의 갯수입니다. 대소관계를..
#include #include using namespace std; int main(void) { int tc = 0; cin >> tc; for (int i = 0; i > s_l; cin >> a; cin >> b; int count = 0; for (int j = 0; j < s_l; j++) { if (a[j] == b[j]) count++; } cout
이 문제에 오버타임에 대한 댓글이 있어서 데이터량이 큰 것을 알았다. 또한. 이 문제의 경우에는 테스트 케이스 수에 대한 정보도 없어서 테스트 케이스가 얼마나 많이 들어올지도 모른다는 것이다. 그래서 첫 번째로 생각한 솔류션은 list 배열에 각 인덱스에 대응하는 약수 개수를 저장해놓고 처음부터 각 값까지 max값을 계산해였다. 하지만, 이 경우, 문제 자체의 개수도 많았기에 5개뿐이 맞추지 못했다. 그래서 새로운 솔류션을 생각했다. list 배열에 차원을 하나 더 늘려 그 숫자까지의 max 값을 저장하는 것이었다. 그렇게 되면 처음 약수의 개수를 찾는 for문과 그 숫자까지의 max 값을 찾는 for문을 이용하여 값을 빠르게 찾을 수 있다. 시간복잡도는 100000(약수 개수 찾기)+100000(max..
아무리해도 논리가 맞아서 왜 안되지하다가 i가 j로 잘못적힌거 발견했다.... 다음부터는 이런 실수하지 않길... 먼저 순열을 받으면서 각 숫자에 대한 %3의 값을 저장하고 0번부터 자리값과 숫자값이 맞는 지 확인한다. 틀리다면, 그 이후로 swap해서 2개의 숫자가 제자리에 갈수 있도록하는 자리를 찾고, 없을 때를 대비하여 제자리에 있지 않고 현재자리의 값을 가지고 있는 숫자를 저장하여 swap한다. #include void swap(int list1[], int list2[]) { int temp[2] = { list1[0],list1[1] }; list1[0] = list2[0]; list1[1] = list2[1]; list2[0] = temp[0]; list2[1] = temp[1]; } int..