여러분 안녕!!

JoyCodingLab.(조이코딩연구소)

장샘 입니다(_ _)/

 

이번시간은 드디어 YBMIT COS 1(코딩스페셜리스트) 예제

마지막 10번 문제 해설 입니다!!

마지막이니 문제가 어려울 것으로 예상 됩니다.

 

자 집중하시고 같이 잘 풀어보도록 하시죠.

그럼 10번 문제 해설 시작합니다.

문제를 보니 정렬하는 프로그램 입니다.

정렬은 알고리즘 문제라고 보시면 됩니다.

기본적은 알고리즘에 관한 문제는 꼭? 출제 되는 경향이 있으니

다양한 알고리즘에 대해서 이해를 하셔야 됩니다.

어떤 알고리즘 문제인지 보시죠~

마지막 문제는 변수까지 많네요.

알고리즘 관련된건 변수를 많이 사용할 수 밖에 없습니다!

지시사항은을 보니 버블정렬 프로그램이란걸

알게 되었네요.

버블 정렬을 이용하여 오름차순으로 정렬하는겁니다.

오름차순과 내림차순을 혼동하시는 분은

계단을 생각하시면 됩니다.

올라 갈때 낮은곳 부터~ 높은 곳으로

내림차순은 높은 계단에서 낮은 쪽으로!

스크립트 코딩이 어마어마 하죠?ㅎㅎ

추가블럭에서 우리가 코딩을 해야 되는데

버블정렬 알고리즘을 처음부터 하라고 안합니다.

동작이 잘 되게 고치라고 되어있죠.

와!!! 처음부터 안만들어도 된다^^!!!

다른 문제풀이에서도 말씀 드렸지만

기본적으로 동작의 흐름과 이해를 완벽히 해야

수정을 할 수 있습니다.

어려운거에요!!!

그러니 알고리즘 공부를 열심히 하자!

 

보기 블럭에 있는 블럭만 이용해서 문제를 풀어야 됩니다.

정렬 추가 블럭을 보니 빠져 있는 부분이 있네요.

여기서!!!!! 빠져 있는 부분만 채우면 된다?

아닙니다!!!!

몇몇 분들이 오해를 하시는데

기존에 되어 있는 곳에서 고쳐야 될 수도 있는거에요!

문제는 이 추가 블럭이 잘 동작되도록 바꾸라고 한거지

중간에 빈칸을 채우는 문제가 아니라는 겁니다! OK??!

보기블럭들을 문제 있는 곳으로 복사를 해왔습니다.

보기 편하닌깐~~

이것도 한가지 시험 Tip이에요.

보기 블럭 스프라이트와 문제 스프라이트를

왔다갔다 하면 뭐가 있는지 잘 모르기 때문에

보기 블럭에 스크립트들이 많지 않다면

복사해와서 작업 하시는게 훨씬 더 시간을 절약 할 수 있습니다^^!

 

자 그나저나 우리는 버블정렬을 이용해서

오름차순을 해야 되는데

버블 정렬이 뭔지 아세요?

버블 정렬 이란?!

- 서로 이웃한 데이터들을 비교하며 가장 큰 데이터를 맨 뒤로 보내는 방식 입니다. -

자 위에 해당 블럭에 뭘 구현해야 될지 간단히 써봤습니다.

기본적으로 문제에도 나오 있듯이

리스트(4개의 각 블럭 : 9, 5, 6 ,2)들을 비교해야 되는거죠?

변수에 대한 이해가 잘 되어 있어야 넣을 수 있는 자세히 보죠.

Num은 ? 정렬할 목록의 수 입니다.

이번 문제에서는 몇인가요? 4개 입니다.

9,5,6,2 닌깐요~~~

J  :  n번째 수를 저장

K  : n+1번째 수를 저장

J하고 K가 필요한 이유는

그러면 각각의 숫자를 돌아가면서 비교 해야 되니 2개가 필요 한 거에요.

그리고 값을 바꾸기 위해서 바로 바꿀 수 없으니

Temp라는걸 이용해서 잠시 담아 두고 바꾸는 겁니다.!!

이전 설명에서 J가 여기서 필요한건 아셨죠?

J가 포함된 건 하나밖에 없었습니다.

Num - J 였죠.

그 안에 내용을 보면 다른 변수가 또 하나 증가하는걸 볼 수 있죠.

K까지 바꿔 줘야 겠죠?

흠...어려우신가요?? 잘 이해가 안될 때는

이렇게 해보시죠.

기존 문제의 전체 흐름도를 올려 놓고

각각의 반복문에 값을 넣어보면서 해보세요.

그러면 흐름이 조금씩 보일 겁니다.

위 화면 버블 정렬이 처음시작 되었을 때

해당 변수들이 갖고 있는 값입니다.

즉 무엇이냐.

리스트 4칸 중에 제일 앞칸에 가장 작은 것을

옮기기 위한 작업이다.

위 화면은 첫번째 칸을 비교하기 위해 두번째로 실행 되는 화면 입니다.

그래서 J는 아직 1이지만

중간 K는 2로 바뀌었죠~

옆으로 이동하면서 비교를 해야 되기 때문입니다.

즉 위와 같이 K+1를 넣어 줘야 되는곳을 알게 되는거죠.

자 이렇게 블럭을 추가 및 수정을 한뒤

실행을 보시죠.

먼저 4개의 리스트들을 9,5,6,2 정렬이 안된 숫자를 입력 후

시작을 누르게 되면

오름차순으로 정렬된 결과를 보실 수 있습니다!!!

자 어떠신가요?!!

드디어 COS 1급 예제 문제 모든 해설을 완료 하였습니다.

공식적인 해설집이 없어서 급하게 만드느라

정신이 없었지만 많은 도움이 되길 바랍니다.

관련 질문은 항상 환영인거 아시죠?

요즘 코딩 선생님 양성을 위해서도

쉽고 잼있고 가르쳐 드릴려고 노력 중 입니다.

제 수업을 들으시는 분들과 COS 1급을 취득하시고 싶은

분들에게 도움이 되길 바라며..

YBMIT 공식 COS1급 예제 문제 풀이 연재를

이것으로 끝내도록 하겠습니다^^!!!

그럼 조이코딩연구소

장샘은 이만..

물러갑니다!!!!!

휘리리릭!!!!

뿅!!

아래 위 하트 공감 클릭은 돈이 들지 않아요!!!

관심은 제겐 항상 큰 힘입니다!!

P.S : 질문도 무료 인거 아시죠?ㅎㅎ

 

 

여러분 안녕!

JoyCodingLab.(조이코딩연구소)

장샘 입니다^^!

 

이번 시간에는 YBMIT COS1급 공식 예제 문제

9번 문제를 풀어보도록 하겠습니다.

COS 기출문제는 YBM에서 올려주지 않지만

실제 나왔던 유형에 대해서 설명을 조금씩 드리고 있으니

도움이 되길 바랍니다.

 

자 그러면 9번 문제 해설 들어갑니다~!

이번 문제는 엿치기-0-? 프로그램 이네요.

이번 문제의 변수는 4가지가 있네요.

I, 진행, 플레이어1,2

잘 파악한뒤에 지시사항을 봅시다.

코딩스프라이트는 단 하나! 고양이네요.

지시사항을 보니 8번문제서 봤던 내용과

비슷하네요.

결과2블록을 수정해서

기존의 결과1 추가블럭을 대신해서 대체 하는 문제 입니다.

자 스프라이트가 3개가 있ㅈ만

우리는 고양이만 집중해서 봅시다!!

궁금증은 나중에 시간이 많을 때 보시고 ㅎ

자 문제를 기억하시죠?

정의학기 결과2를 결과1를 수정해야 됩니다.

문제가 기존 문제에서 만약에~라면 3개로 바꾸는

문제였습니다.

이런 문제가 실제로도 나옵니다.

기존의 없던걸 바꾸라는 문제도 있지만

기존이 있던 블럭에서 한정된 블럭으로만 같은 기능을

만들게 하는 문제가 꼭? 나옵니다.

이건 완벽하게 이해를 하지 못하면 못하니 연습 많이!

어찌됏건 만약~라면을 보면

마지막 만약 ~가 아니면 이부분도

사실은 만약에라고 바꿀 수 있는 겁니다.

그래서 위와 같이 3개로 나눌 수 있겠죠?

기존 만약 플레이어> 플레이어2라면은 그대로 쓰면 되고

만약 플레이어1 = 플레이어2가 같다면도 그대로 쓰면 되고

플레이어1=플레이어2가 아니라면을 새롭게 만드는거죠.

무엇으로 만드냐?

조건이 하나밖에 안남았죠.

플레이어1 > 플레이어2 이 조건은 이미 나왔고

플레이어 1 = 플레이어 2 이조건도 이미나왔으니

나머지는 플레이어 1 < 플레이어2 밖에 안남은거죠.

자 깔끔하게 정리를 하자면 위와 같이 비교가 되겠네요.

결과2 추가블럭을 정리해봅시다.

그리고 기존에 있떤 결과1를 지우고

우리가 새로 만든 결과2로 대체 합니다.

이렇게 마무리를 할 수 있겠네요.

동작을 해봐서 기존의 동작과 같은 결과가 나오는지

꼭 확인하기요!!!!

 

자 이번시간에는 COS1급 예제 9번 문제를 풀어봤습니다.

다들 이해가 잘 되셨길 바라며~

모르는 부분이나 궁금한 부분은

마음속으로 담아 두지 말고

꼭 질문해서 알아가야 되요!!

아셨죠?ㅎㅎ

그럼 조이코딩연구소

장샘 이만

물러가겠습니다.

휘리리릭

뿅!!!

여러분 안녕~!

JoyCodingLab.(조이코딩연구소)

장샘 입니다^^!!

 

이제 드디어 YBMIT COS 1급 공식 예제 문제 풀이가 3개 남았습니다.

조금씩 어려워지고 있지만 목적달성을 해야겠죠?

그럼 COS 1급 예제 8번째 문제 풀이

시작하겠습니다!!~

사다리꼴의 넓이를 계산하는 프로그램을 만드는 문제 입니다.

처음부터 우리가 다 만들어야 될까요?

그건 시간이 부족하겠죠~

일단 변수가 엄청 많이 있네요.

총 5개가 되니 자세히 읽어보고~

코딩 스프라이트는 하나 입니다("고양이")

지시사항을 보면 2개가 있네요.

1) 계산2 추가블록의 성능을 개선하기 위한 수정~!

2) 깃발 클릭했을 때 계산2 블럭을 실행하는거네요.

(기존 계산1를 지우고 대체 하면 끝)

유의사항을 보면 영역에 주어진 블록만 이용합니다.

자 실제 8번 문제 입니다.

계산2에 대한 정의하기는 이미 되어있고

계산2에 대한 블록도 미리 꺼내져 있네요~

지시사항에 맞게 2개에 대해서 코딩을 하면 될거 같네요.

자 1번 지시사항에서 윗변과 아랫변을 합산 변수로

대체하는 작업을 해야 됩니다.

자 또다시 나왔습니다

정하기로 해야 되나요? 바꾸기로 해야되나요?

맞습니다. 정하기죠. 바꾸기는 해당 값을 또 더하는 개념이죠?

윗변 + 아랫변을 이렇게 함으로써 합산에 넣습니다.

자 합산에 넣었으면 해당 스크립트 블럭을 어디다가

넣어야 될까요?

반복문 밖에 꺼내 놓으라고 되어있죠?

반복하기 앞으로 꺼내 놓고 다음 문제를 봅시다

넓이를 구하는 공식을 합산을 넣어서

다시 수정을 해야 됩니다.

합산은 윗변 + 아랫변이닌깐

넓이는 공식이 나와있으니 그대로~

(높이 * 합산) / 2 입니다.

위와 같이 수정을 하면 되겠죠?

자 이렇게 코딩한 계산2 추가블럭에 대해서

코딩을 완성 시키고

기존에 있던 계산1을 계산2로 대체 합니다.

 

자 여기서 시험 Tip 입니다.

자 시험을 보실려고 하는 분들이 궁금해 하는점

이렇게 계산2로 대체 했을 때 기존의 블럭들은

어떻게 둬야 둬야 되느냐???

지우시면 됩니다.

공식 예제 정답을 보시면 기존의 계산1은

지워져 있습니다.

 

사실 문제 자체의 목적은 해당 되는 계산식을

잘 수정 하는 것과 수정된 블럭을

기존의 블록을 대체 할 수 있느냐를 보는 문제였습니다.

 

자 이번 시간에는 COS1급 공식 예제 8번 문제풀이를

끝내겠습니다.

그럼 이만

조이코딩연구소

장샘은 이만 물러갑니다.

휘리리릭!!

뿅!!!!

 

 

+ Recent posts