Recommended
PDF
코딩 테스트 및 알고리즘 문제해결 공부 방법 (고려대학교 KUCC, 2022년 4월)
PDF
PPTX
Processing 3rd Class: If & Loop
PPTX
PDF
PDF
(프로그래밍 교육/소프트웨어 교육) 교수요목 분석
PPT
PDF
코딩테트2205-kucc-220508145530-8015b5d7.pdf
PPTX
코딩테스트 합격자 되기 C++ 00~ 01장(효율적 공부하는방법).pptx
PPTX
코딩 테스트 합격자 되기 C++ 00장~ 01장을 정리한 강의자료 입니다.
PDF
DOCX
PDF
PDF
PDF
PDF
PDF
PDF
PPTX
PPTX
[Devfest Campus Korea 2021]효율적인 문제해결 With 알고리즘
PPTX
01. c and time complexity
PDF
PDF
PDF
Problem Solving GuideBook
PDF
PDF
DOCX
PDF
More Related Content
PDF
코딩 테스트 및 알고리즘 문제해결 공부 방법 (고려대학교 KUCC, 2022년 4월)
PDF
PPTX
Processing 3rd Class: If & Loop
PPTX
PDF
PDF
(프로그래밍 교육/소프트웨어 교육) 교수요목 분석
PPT
PDF
코딩테트2205-kucc-220508145530-8015b5d7.pdf
Similar to 생각하는 프로그래밍 1부
PPTX
코딩테스트 합격자 되기 C++ 00~ 01장(효율적 공부하는방법).pptx
PPTX
코딩 테스트 합격자 되기 C++ 00장~ 01장을 정리한 강의자료 입니다.
PDF
DOCX
PDF
PDF
PDF
PDF
PDF
PDF
PPTX
PPTX
[Devfest Campus Korea 2021]효율적인 문제해결 With 알고리즘
PPTX
01. c and time complexity
PDF
PDF
PDF
Problem Solving GuideBook
PDF
PDF
DOCX
PDF
생각하는 프로그래밍 1부 1. 2. 3. 4. 5. 6. 문제점 인식하기대화A : 정렬 하려는 것이 정확히 뭐지? 레코드가 얼마나 많고, 형식이 어떻지?B : 최대 1천만 개의 레코드를 가지고 각각의 레코드는 7자리 정수야. 숫자는 중복되지 않고,그리고 메모리는 1MB정도 사용할 수 있어. 7. 문제점 인식하기입력 : 최대 n개의 양의 정수들만을 포함하는 파일로, 각 숫자는 n보다 작고 n = 10의 7승이다. 어떤 숫자가 두번 이상 나오는 것은 치명적 에러이다.출력 : 입력된 정수를 오름차순으로 정렬한 리스트조건 : 메모리 1MB가량 사용가능 8. 문제점 인식하기해결 방법을 강구해보자.해결방법 1.입력 파일을 읽어서 작업파일에 저장한다.작업 파일을 토대로 디스크 기반의 머지정렬을 한다. 9. 문제점 인식하기문제를 좀 더 곰곰히 생각해보자.단위가 32bit의 정수형 한 개다.대략 1MB에 250,000개를 올릴 수 있겠군. 10. 11. 문제점 인식하기문제를 더 곰곰히 생각해본다.숫자가 두 개 이상 나오지 않는다.1~10^7중에 특정 숫자가 존재 하는지 안 하는지만 구별해놓으면 된다. 12. 문제점 인식하기다시 해결 방법을 강구해보자.해결방법 3.비트 천만 개의 열로 나타내 본다.{ 1, 2, 3, 5, 8, 12, 13}0 1 1 1 0 1 0 0 1 0 0 0 1 1 …… 13. 14. 문제점 인식하기핵심정확한 문제 정의작은 문제에 대한 주의 깊은 분석으로 이익을 얻어보자.시간-공간 트레이드오프인 것과 아닌 것시간과 공간은 보통 반비례하지만, 공간이 줄어들 수록 시간도 주는 경우가 빈번하다.단순한 디자인간단한 프로그램일수록 신뢰, 안전, 견고적이며 유지보수가 쉽다. 15. 16. 17. 18. 알고리즘 선택하기문제 A최대 40억 개의 32비트 정수가 랜덤한 순서로 들어있는 순차적 파일이 주어졌을 때 파일에 포함되지 않은 임의의 정수 하나를 찾아라.메모리를 넉넉히 쓸 경우와 아닌 경우 19. 20. 21. 22. 알고리즘 선택하기문제 Bn개의 원소를 가지는 1차원 벡터를 i만큼 왼쪽으로 회전시켜라.예)n = 8 , i =3 일때abcdefgh -> defghabc메모리가 수십바이트 여유 밖에 없다. 23. 24. 25. 26. 27. 알고리즘 선택하기문제 C알고리즘 1어떤 단어의 모든 문자의 순열을 고려해본다.22글자의 단어의 전철어구 찾는데 걸리는 시간은 22!22!개의 단어와 사전의 비교 28. 알고리즘 선택하기문제 C알고리즘 2사전자료를 다르게 생각해보자.사전의 모든 단어를 알파벳 순으로 정렬한다.deposit -> deiopstdopiest -> deiopst사전을 정렬한다. 29. 30. 31. 32. 데이터 구조화 하기if( k == 1) c001++;if( k == 2) c002++; ….if( k == 500) c500++; 33. 34. 35. 데이터 구조화에러 메시지 이야기지저분한 시스템에러 메시지가 코드 여기 저기에 흩어져 있고, 다른 출력문과 섞여있다.깔끔한 시스템하나의 함수를 통해 에러 메시지에 접근하도록 한다. 36. 데이터 구조화모든 가능한 에러 메시지에 대한 리스트를 만드시오.에러 메시지 이야기지저분한 시스템에러 메시지가 코드 여기 저기에 흩어져 있고, 다른 출력문과 섞여있다.깔끔한 시스템하나의 함수를 통해 에러 메시지에 접근하도록 한다.모든 “심각한” 에러 메시지에 대해 경고음을 발생하시오.에러 메시지를 프랑스어로 번역하시오. 37. 38. 39. 데이터 구조화핵심반복 되는 코드는 배열을 사용하여 다시 작업복잡한 구조는 캡슐화도구를 사용하라코드 작성 전에 데이터 구조 파악에 힘쓰자. 40. 41. 프로그램 구조에 대하여문제 정렬된 배열 x[0..n-1]이 목표 t를 포함하는가?조건n>= 0이고, x[0] <= x[1] …. <=x[n]n=0이면 빈 배열정답은 t가 있는 위치 p (t=x[p], x안에 t가 없으면 p=-1) 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 프로그래밍에서의 사소한 문제1. 0 10 20 있는 배열에서 0을 찾아봤다. x[0]에 있다는군…2. 0 10 20 30 40 있는 배열에서 20을 찾아봤다. x[2]에 있다는군…0 10 20 있는 배열에서 -5를 찾아봤다.없군.. 62. 프로그래밍에서의 사소한 문제1. 0 10 20 있는 배열에서 0을 찾아봤다. x[0]에 있다는군…2. 0 10 20 30 40 있는 배열에서 20을 찾아봤다. x[2]에 있다는군…0 10 20 있는 배열에서 -5를 찾아봤다.없군..일단은 잘 동작하는듯 보입니다! 63. 64. 65. 프로그래밍에서의 사소한 문제 값이 없을 경우프로그래밍에서의 사소한 문제이러한 mustbe들을 잘 정의해서 지켜졌다면 프로그램은 안전하다. 66. 전 여기까지 오면서 [5 20] [5 30] [5 40] [2 -5]따위의 입력을 수십 번도 넘게 손으로 쳤습니다.프로그래밍에서의 사소한 문제 67. 테스트 역시 자동화를 시켜봅니다.프로그래밍에서의 사소한 문제s는 이진탐색 함수 호출assert가 발생하지 않은 걸보니 안전한가봅니다! 68. 같은 숫자로 이뤄진 배열도 안전한가요??프로그래밍에서의 사소한 문제assert가 발생하지 않은 걸보니 안전한가봅니다! 69. 안전성은 확보한 것 같습니다! 그럼 이제 수행시간을 측정해 봅시다!프로그래밍에서의 사소한 문제 70. 71. 72. 73. 74. 75. 76. 77. 78.