병합 정렬 병합 정렬2 석차구하기 가까운 수 구하기 이진검색

Slides:



Advertisements
Similar presentations
Chapter 12. 배열. 배열  동일한 항목들이 동일한 크기로 연속적으로 메모리에 저장되는 구조  동일한 자료 유형이 여러 개 필요한 경우에 이용할 수 있는 자료 구조.
Advertisements

1 08 배열. 한국대학교 객체지향연구소 2 C 로 배우는 프로그래밍 기초 2 nd Edition 배열  동일한 자료유형의 여러 변수를 일괄 선언  연속적인 항목들이 동일한 크기로 메모리에 저장되는 구조  동일한 자료 유형이 여러 개 필요한 경우에 이용할 수 있는.
1. 2 차원 배열  배열은 동일한 데이터 유형으로 여러 개의 변수를 사용할 경우 같은 이 름으로 지정하여 간편하게 사용할 수 있도록 하는 것으로서 앞에서 1 차원 배열을 공부하였습니다.  2 차원 배열은 바둑판을 생각하면 되며, 1 차원 배열에서 사용하는 첨자를 2.
출석수업 과제 – 총 5문제, 10월 25일 제출 정보통계학과 장영재 교수.
알고리즘 기본 개념 정렬 알고리즘 탐색 알고리즘 알고리즘 복잡도.
이진 나무 구조 강윤섭 2008년 5월 23일.
재료수치해석 HW # 박재혁.
제 7 장 함수 사용을 통해 엑셀 정복하기.
Report #5 - due: 4/13 다음 10*5의 희소 행렬 A, B를 고려하라.
Report #2 - Solution 문제 #1: 다음과 같이 프로그램을 작성하라.
컴퓨터 프로그래밍 기초 [Final] 기말고사
5장 배열 작성자 : 변재현.
누구나 즐기는 C언어 콘서트 제8장 배열.
정보보안 프로젝트 (Sort Algorithm) 학 부 : 컴퓨터 정보공학부, 네트워크 정보 공학부
자료구조론 11장 정렬(sort).
07 그룹 함수 그룹 함수의 개념 그룹 함수의 종류 데이터 그룹 생성 HAVING 절.
Heesang kim PL/SQL 3 Heesang kim.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
쉽게 풀어쓴 C언어 Express 제10장 배열 C Express Slide 1 (of 32)
제8장 배열 1부 8.1 배열 8.2 배열의 초기화 8.3 배열의 응용 8.4 정렬과 탐색 8.5 다차원 배열.
Chapter 07. 기본 함수 익히기.
예제로 배우는 Visual Basic 구구단 작성기로 익히는 반복문
11장. 1차원 배열.
배열(Array) 선린인터넷고등학교 정보통신과 유 순 옥.
C 프로그래밍 C언어 (CSE2035) (Chap11. Derived types-enumerated, structure, and union) (1-1) Sungwook Kim Sogang University Seoul, Korea Tel:
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
프로그래밍 개요
어서와 C언어는 처음이지 제14장.
인터넷응용프로그래밍 JavaScript(Intro).
박성진 컴퓨터 프로그래밍 기초 [09] 배열 part 1 박성진
CHAP 9: 정렬 순천향대학교 컴퓨터학부 하 상 호.
Report #3 - due: 4/6 100*100의 2개의 희소 행렬 A, B를 전달 받아서 이들의 덧셈을 구하고, 그 결과의 행렬 C를 반환하는 add_sparse_matrix(A, B, C)를 다음과 같이 작성하라. 희소 행렬은 sparse_matrix 타입으로 표현된다.
Java의 정석 제 5 장 배 열 Java 정석 남궁성 강의 의
Quiz #7 다음 수들을 합병 정렬과 퀵 정렬 알고리즘을 이용하여 오름 차순으로 정렬하였을 때, 데이터 이동 회수를 각각 구하라. 여러분은 정렬 과정을 단계별로 보이면서 이동 회수를 추적해야 한다. 단, 퀵 정렬시에 피봇으로 배열의 왼쪽 첫 번째 원소를 선택한다. 5.
Term Projects 다음에 주어진 2개중에서 한 개를 선택하여 문제를 해결하시오. 기한: 중간 보고서: 5/30 (5)
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
8장. spss statistics 20의 데이터 변환
5강. 배열 배열이란? 배열의 문법 변수와 같이 이해하는 배열의 메모리 구조의 이해 레퍼런스의 이해 다차원 배열
문자열 컴퓨터시뮬레이션학과 2015년 봄학기 담당교수 : 이형원 E304호,
리스트(List)를 이용한 자료 관리 이점숙 /
Canary value 스택 가드(Stack Guard).
균형이진탐색트리 이진 탐색(binary search)과 이진 탐색 트리(binary search tree)와의 차이점
[ 단원 04 ] 반복과 배열.
알고리즘 알고리즘이란 무엇인가?.
데이터 동적 할당 Collection class.
디버깅 관련 옵션 실습해보기 발표 : 2008년 5월 19일 2분반 정 훈 승
에어 PHP 입문.
Excel 일차 강사 : 박영민.
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
DA :: 퀵 정렬 Quick Sort 퀵 정렬은 비교방식의 정렬 중 가장 빠른 정렬방법이다.
Homework #12 (1/2) 프로그램을 작성하고, 프로그램과 실행 결과를 프린트하여 제출한다.
Flow Diagram IV While.
7주차: Functions and Arrays
7장. 다양한 형태의 반복문. 7장. 다양한 형태의 반복문 7-1 반복문이란? 반복문의 기능 세 가지 형태의 반복문 특정 영역을 특정 조건이 만족하는 동안에 반복 실행하기 위한 문장 7-1 반복문이란? 반복문의 기능 특정 영역을 특정 조건이 만족하는 동안에 반복.
Chapter 10 데이터 검색1.
CHAP 9: 정렬 순천향대학교 컴퓨터학부 하 상 호.
11장 배열 1. 배열이란? 1.1 배열의 개요 1.2 배열의 선언과 사용.
TVM ver 최종보고서
컴퓨터 프로그래밍 기초 - 9th : 배열 / 포인터 -
상관계수.
7장 연습 문제 풀이 학번 : 이름 :조 재한.
수치해석 ch3 환경공학과 김지숙.
2014년 가을학기 손시운 지도 교수: 문양세 교수님 행렬과 배열 2014년 가을학기 손시운 지도 교수: 문양세 교수님.
어서와 C언어는 처음이지 제21장.
개정판 누구나 즐기는 C언어 콘서트 제7장 배열 출처: pixabay.
Report #2 (기한: 3/16) 데이터 구조 과목의 수강생이 50명이라고 가정한다. 이 학생(학번은 2016????으로 표현됨)들의 중간 시험(0~100), 기말 시험(0~100) 성적을 성적 파일에 작성하라(프로그램을 통해서 또는 수작업으로). 성적 파일을 읽어들여서.
C++ Espresso 제15장 STL 알고리즘.
6 객체.
2019 2학기 9장 배열과 포인터 1. 주소, 주소연산자(&) 2. 포인터, 역참조연산자(*) 3. 배열과 포인터.
Presentation transcript:

병합 정렬 병합 정렬2 석차구하기 가까운 수 구하기 이진검색 6. 정렬과 검색 정렬 선택 정렬 버블 정렬 칵테일 정렬 삽입 정렬 병합 정렬 병합 정렬2 석차구하기 가까운 수 구하기 이진검색

정렬(sort) 정렬(Sort)은 데이터를 특정 규칙에 따라 재배열 하는 것 오름차순:작은수 부터 큰 수의 순으로 나열 내림차순:큰 수 부터 작은 수의 순으로 나열

정렬(sort) 배열 R에 27, 63, 44, 56, 72, 18, 88, 87 과 같은 숫자열이 입력되어 있다. 배열 R의 값을 오름차순 정렬하여 출력하는 알고리즘을 완성하시오. 제시된 <처리조건>을 참조하여 다음 각 문제의 괄호 안 내용에 가장 적합한 항목을 <답항보기>에서 선택하시오. |처리조건| 1. 배열의 첨자는 0~7로 구성된다. 2. 정렬하는 자료는 100보다 작은 양의 정수로 한다. 3. 알고리즘에 사용되는 변수들은 다음과 같다. - R : 배열 - pos:배열 기억 변수 - i, J : 반복변수 - min : 최소값

정렬(sort)

정렬(sort) 100보다 작은 첫 번째 자료부터 비교하여 최소값의 위치를 찾고 그 값을 출력한 후 그 위치의 값을 최대값 100으로 수정한다. 동일한 과정을 자료의 수만큼 반복하여 오름차순으로 정렬한 결과를 출력하는 순서도로 구성.

정렬(sort) 오름차순으로 정렬해나가는 과정 Min : 각 단계마다 찾아낸 최소값을 지정 pos : 그 최소값의 위치를 지정.

정렬(sort) 알고리즘 시작 초기화 pos=0, R(7) 대상 항 i를 7까지 탐색 대상 항 j를 0부터 7까지 탐색 최초의 최소값 min을 100으로 설정 min=100 배열의 0번째 요소 R(j)와 최소값 비교 R(j)<min 최소값을 R(j)로 설정 min=R(j) 최소값이 나타난 위치 저장 pos=j 최소값 출력 print R(pos) 찾아낸 최소값의 위치에 100을 지정 끝

정렬(sort) i 변수 : 정렬단계 지정 J 변수 단계마다 배열요소들 중 최소값 찾기에 사용 변수의 값을 하나씩 증가시켜 7보다 커질 때까지 반복 처리조건에 의하면 배열의 첨자는 0부터 7까지 이므로 0으로 초기화 ① : J=0

정렬(sort) min 변수 각 단계마다 최소값을 찾기위해 일단 최대값으로 지정 처리조건에 의하면 자료들이 100보다 작은 양의 정수라 하였으므로 100으로 지정한다. ② : min=100

정렬(sort) J번째 배열요소의 자료가 min의 값보다 작은 경우 ③ : R(J)<min 그때의 위치 J를 pos 변수에 지정 ⑤ : pos=J

정렬(sort) 단계마다 최소값은 pos 번째 자료 R(pos)의 내용을 출력 ⑥ : R(pos) 비교 대상에서 제외하기 위해 다음 단계의 최소값을 찾기 위해 i 변수의 값을 하나 증가시켜 반복을 계속.

정렬(sort) 시작 pos=0, R(j) 반복 i=0,7,1 min=100 반복 j=0,7,1 R(j)<min No R(j)<min Yes min=R(j) pos=j R(pos) R(pos)=100 끝

정렬(sort) - 연습문제 다음은 배열 R에 자료들을 입력받아 내림차순으로 출력하는 알고리즘이다. 제시된 <처리조건>을 참조하여 다음 각 문제의 괄호 안 내용에 가장 적합한 항목을 <답항보기>에서 선택하시오. |처리조건| 1. 정렬하는 자료는 0보다 큰 양의 정수로 한다. 2. read R(i), i=1,10 10개의 자료가 R 배열에 1번째 원소부터 10번째 원소까지 차례대로 입력됨을 나타낸다. 3. 알고리즘에 사용되는 변수들은 다음과 같다. - R(10) : 배열 - pos:최소값 위치 변수 - i, J : 반복변수 - max : 최대값

정렬(sort) - 연습문제

정렬(sort) - 연습문제 알고리즘 시작 초기화 R(10) 배열에 자료입력 read R(i) 배열의 최대값 Max=0으로 설정 대상 항 j를 1부터 10까지 탐색 배열의 0번째 요소 R(j)와 최대값 비교 R(j)>Max 최대값을 R(j)로 설정 Max=R(j) 최대값이 나타난 위치 저장 pos=j 최대값 출력 print R(pos) 찾아낸 최대값의 위치에 0을 지정 끝

정렬(sort) - 연습문제 시작 pos=0 read R(i) 반복 i=1,10,1 Max=0 반복 j=1,10,1 No R(j)>Max Yes Max=R(j) pos=j R(pos) R(pos)=0 끝

선택 정렬(Selection Sort) N개의 DATA를 입력받아 Selection Sort를 이용하여 오름차순으로 정렬한 후, 출력하는 알고리즘이다. 제시된 <처리조건>을 참조하여 다음 <그림>의 괄호 안 내용에 가장 적합한 항목을 <답항보기>에서 선택하시오. |처리조건| 1. READ A(i), i = 1, N N개의 자료가 A 배열에 첫 번째 원소부터 N 번째 원소까지 차례로 입력됨을 나타낸다. 2. 알고리즘에 사용되는 변수 등은 다음과 같다. - A(N) : N 개의 DATA가 입력될 배열 변수 - Temp : SWAP을 위한 임시 변수 - i : 인덱스 변수 - J : 인덱스 변수

선택 정렬(Selection Sort) 정보처리산업기사 2005년 4회(10.23)

선택 정렬(Selection Sort) 선택 정렬(Selection sort) 주어진 파일에서 최소값을 갖는 데이터를 찾아 첫 번째 데이터와 자리를 교환하고, 두 번째부터 마지막 데이터 중에서 최소값의 데이터를 찾아 두 번째 데이터와 자리를 교환한다. 이러한 과정을 (N-1) 번째로 작은 데이터를 찾을 때까지 반복하면서 정렬을 완성한다. 전체적으로 (N-1) 단계를 반복 수행하게 된다.

선택 정렬(Selection Sort) 오름차순으로 선택 정렬

선택 정렬(Selection Sort) 알고리즘 시작 초기화 배열 A(N) 입력 read A(N) 반복 i를 1부터 N-1까지 탐색 반복 j를 i+1부터 N까지 탐색 A(i)<=A(j), yes이면 goto 1 no이면 위치교환 temp=A(i) A(i)=A(j) A(j)=temp 반복으로 결과 출력 i=1,N print R(pos) 끝

선택 정렬(Selection Sort) 중첩된 반복 구조 바깥쪽 반복 구조 안쪽 반복 구조 i가 1~(N-1) 로 변화하며 (N-1)회 반복 i는 i번째 작은 값이 저장될 배열 위치 안쪽 반복 구조 i번째 데이터를 결정하기 위해 A(i)와 A(J)를 비교 A(J)에는 i+1번째부터 N 번째까지의 배열 요소를 차례대로 지정하면 된다. 따라서 안쪽 반복형 구조의 반복 범위는 J가 i+1부터 N이 될 때가지 반복 수행하도록 지정 ① : J=i+1,N

선택 정렬(Selection Sort) 안쪽 반복 구조 A(i)와 A(J)를 비교하여 A(i)가 작은 값이 되어야 한다. Temp 변수 사용하여 두 값의 위치를 교환 ② : Temp=A(i) ③ : A(i)=A(J) ④ : A(J)=Temp

선택 정렬(Selection Sort) 정렬이 완료되면 결과 출력 배열 A(i)를 출력하기 위해 또 하나의 반복을 수행 인덱스 i의 값이 모든 데이터의 위치를 지정해야 하므로 i는 1부터 N까지 반복하도록 지정 ⑤ : i=1,N

선택 정렬(Selection Sort)

선택 정렬 - 연습문제 다음의 순서도는 배열 A에 기억된 N개의 자료를 내림차순 정렬하는 순서도이다. 제시된 <처리조건>을 참조하여 다음 <그림>의 괄호 안 내용에 가장 적합한 항목을 <답항보기>에서 선택하시오. |처리조건| 1. 알고리즘에 사용되는 변수 등은 다음과 같다. - A : N개의 값을 저장할 배열 - I, J : 배열 인덱스 변수 - N : 데이터 수 - TMP : swap을 위한 임시 변수

선택 정렬 - 연습문제

선택 정렬 - 연습문제 알고리즘 시작 초기화 배열 A(N) 반복 i를 1부터 N-1까지 탐색 반복 j를 i+1부터 N까지 탐색 A(i)<=A(j), no이면 goto 1 yes이면 위치교환 temp=A(i) A(i)=A(j) A(j)=temp 반복으로 결과 출력 i=1,N print R(pos) 끝

선택 정렬 - 연습문제 J=I+1 No A(i)<=A(J) Yes A(i) A(J) j<N

버블 정렬(Bubble sort) 제시된 <그림>은 배열 A(10)에 기억된 10개의 수치 데이터에 대하여 버블 정렬(Bubble Sort)을 이용하여 오름차순으로 정렬하는 순서도이다. 제시된 <처리조건>을 참조하여 <그림>의 괄호 안 내용에 가장 적합한 항목을 <답항보기>에서 선택하시오. |처리조건| 1. 알고리즘에 사용되는 변수 등은 다음과 같다. - N : 정렬하고자 하는 수치 데이터의 갯수 - i : 정렬의 회전수를 계산하기 위한 변수 - J : 배열의 첨자 등을 위한 변수 - FLAG : 임의의 회전 작업시 데이터의 교환이 발생하지 않을 경우 비교가 반복되는 것을 방지하기 위한 변수 - TM : 주 변수간의 값을 서로 바꾸기 위한 변수

버블 정렬(Bubble sort) 2. 본 문제에서는 FLAG를 설정하여 임의의 회전 작업시 교환이 발생하지 않는다면, 정렬이 완료된 상태로 간주하고 작업을 종료시키기로 한다. 3. 배열의 크기가 10일 경우 배열의 요소는 1부터 10까지 구성되는 것으로 한다. 예를들어, A라는 배열의 크기가 10일 경우 A(10)으로 표시되고, 배열 요소는 A(1)부터 A(10)으로 구현된다고 가정한다.

버블 정렬(Bubble sort) 정보처리기사 2006년 1회(4.23)

버블 정렬(Bubble sort) 버블 정렬 N개의 데이터에 대하여 첫 번째 데이터부터 시작하여 인접한 2개 데이터씩 비교하며 그 결과에 따라 데이터를 교환한다. 오름차순의 경우 첫 번째 데이터와 두 번째 데이터를 비교하여 작은 데이터를 앞에 놓는다. (둘째:세째),(세째:네째).... 의 순으로 계속해서 (N-1) 번째와 N 번째 데이터를 비교 : 1회전 가장 큰 데이터가 N 번째에 위치하게 된다. 첫 번째 데이터로부터 (N-1) 번째 데이터까지 위와 같은 작업을 반복하면 두 번째 큰 값이 (N-1)번째에 위치 이러한 과정을 반복하여 (N-1) 회전, 즉 첫 번째와 두 번째 데이터를 비교하는 것으로 작업이 끝난다.

버블 정렬(Bubble sort) 버블 정렬 : 5개의 입력 데이터 (4, 13, 9, 2, 3)

버블 정렬(Bubble sort) 알고리즘 시작 배열의 크기 N=10 초기값 i=0, flag=0 i=i+1 j=0 j=j+1 크기비교 A(j)>A(j+1) no이면 goto 10 yes이면 자리바꿈 TM=A(j), A(j)=A(j+1), A(j+1)=TM 자리바꿈이 있으면 flag=1 단계 비교 종료 조건 j>=(N-i) no이면 goto 6 yes이면 i>=(N-1) yes이면 goto 13 no이면 flag==0 no이면 goto 4 끝

버블 정렬(Bubble sort)

버블 정렬(Bubble sort)

버블 정렬(Bubble sort) - 연습문제 제시된 <그림>은 배열 R(10)에 기억된 10개의 수치 데이터에 대하여 버블 정렬(Bubble Sort)을 이용하여 오름차순으로 정렬하는 순서도이다. 제시된 <처리조건>을 참조하여 <그림>의 괄호 안 내용에 가장 적합한 항목을 <답항보기>에서 선택하시오. |처리조건| 1. 알고리즘에 사용되는 변수 등은 다음과 같다. - N : 정렬하고자 하는 수치 데이터의 개수 - K : 정렬의 회전수를 계산하는 변수 - i : 배열의 첨자 등을 위한 변수 - FLAG : 불필요한 비교 반복을 방지하기 위한 변수 - TM : 주 변수간의 값을 서로 바꾸기 위한 변수

버블 정렬(Bubble sort) - 연습문제 2. FLAG를 설정하여 임의의 회전 작업시 교환이 발생하지 않는다면, 정렬이 완료된 상태로 간주하고 작업을 종료시키기로 한다.

버블 정렬(Bubble sort) - 연습문제 알고리즘 시작 FLAG=TRUE 반복횟수 K=N-1 FLAG==1 NO이면 PRINT R(I),STOP YES이면 FLAG=FALSE 반복 I=1,K,1 크기비교 R(I)>R(I+1) NO이면 GOTO 6 YES이면 자리바꿈 TM=R(I), R(I)=R(I+1), R(I+1)=TM FLAG=1 K=K-1 GOTO 4

버블 정렬(Bubble sort) - 연습문제

버블 정렬(Bubble sort) - 연습문제 FLAG=1 K R(i+1) 1 K-1

삽입정렬(Insertion Sort) 삽입정렬을 이용하여 전산실 직원 20명의 토익점수가 저장되어 있는 배열A(20)의 데이터를 오름차순으로 정렬 처리조건 A(20) : 20개의 데이터가 기억된 배열 Key : 비교 기준이 되는 키 값 저장 변수 i:인덱스 변수 J:인덱스 변수 배열의 요소는 A(1) 부터 A(20)으로 가정

삽입정렬(Insertion Sort) 삽입정렬은 첫번째 데이터 부터 하나씩 삽입되며 정렬이 수행 첫번째 데이터의 삽입은 그 자체로 정렬이 완료된 것이므로 실질적인 삽입은 두번째 데이터부터 시작 데이터 순서 17, 6, 15, 2, 8 1단계 6 17 15 2 8 2단계 6 15 17 2 8 3단계 2 6 15 17 8 4단계 2 6 8 15 17

삽입정렬(Insertion Sort) 알고리즘 시작 시작위치 값 초기화 i=2 시작 위치 값을 Key에 저장 key=A(i) i-1번째 위치 지정 J=i-1 비교 key < A(j) no이면 goto 9 Yes이면 큰값을 뒤로 삽입 A(J+1) = A(J) 앞쪽 비교위해 J값 수정 J=J-1 맨 앞까지 했는지 비교 J>=1 Yes이면 goto 3 No이면 앞쪽값 위치 지정 A(J+1)=key 다음단계 i=i+1 종료 조건 i>20 no이면 goto 3 Yes이면 End

삽입정렬(Insertion Sort) 시작 시작 i=2 반복 i=2,20,1 Key=A(i) Key=A(i) J=i-1 No 반복 j=i-1,1,-1 Key<A(J) Yes No Key<A(J) A(J+1)=A(J) Yes J=J-1 A(J+1)=A(J) Yes J>=1 A(J+1)=key A(J+1)=key i=i+1 끝 No i>20 Yes 끝

석차구하기(334p.) 1차원 배열을 이용하여 학생 50명의 성명, 국어점수, 영어점수, 수학점수를 입력받아 총점을 계산하고 계산된 총점으로 석차를 구하여 출력하는 알고리즘이다. |처리조건| NAM(50), K(50), E(50), M(50):성명, 국어점수, 영어점수, 수학점수 배열 SUM(50)총점, RANK 석차, I,J,L 배열첨자 변수 2. 학생의 총점이 높은 순우로 석차를 부여하며, 학생별로 총점이 동일한 경우는 없다고 가정한다.

석차구하기 알고리즘 시작 초기화 NAM(50), SUM(50), K(50), E(50), M(50) 입력을 위한 배열 첨자 I=1 입력 READ NAM(I), K(I), E(I), M(I) 총점 구하기 SUM(I)=K(I)+E(I)+M(I) I=I+1 입력종료조건 I<=50 YES이면 GOTO 4 NO이면 석차구하기(J번째 학생) J=1,50,1 순위변수 초기화 RANK=1 J번째 학생의 순위를 위해 마지막학생까지 반복 L=1,50,1 총점비교 SUM(J)<SUM(L) NO이면 GOTO  YES이면(J번째 학생의 점수가 작다면) RANK=RANK+1 출력 PRINT NAM(J), SUM(J), RANK(J) 끝

석차구하기 시작 NAM(50), SUM(60), K(50), E(50), M(50) 반복 J=1,50,1 RANK=1 I=1 반복 L=1,50,1 read NAM(I), K(I), E(I), M(I) No SUM(J)<SUM(L) Yes SUM(I)=K(I)+E(I)+M(I) RANK=RANK+1 I=I+1 NAM(J), SUM(J), RANK(J) Yes I<=50 No 끝