[43] 배열과 포인터
배열의 포인터 변수 선언 . &변수명[index] ㄴ 배열의 기준이 될 주소 한 개를 대입 // 예제 1) int arr[3] = {10, 20, 30}; int *p = &arr[0]; p[1] = 200; printf("arr[1] : %d\n", arr[1]); // 예제 2) int scores[5] = {98, 100, 50, 76, 80}; int *sp = &scores[2]; sp[0] = 10; printf("sp[0~] : %d %d %d\n", sp[0], sp[1], sp[2]); printf("sp[-1] : %d\n", sp[-1]); // 예제 3) int *sp2 = &scores[0]; int *sp3 = sp2; sp3[4] = 0; printf("%d %d %d %d %..
2020. 7. 23.
[40] 정렬
정렬 : 배열응용 . 기준 인덱스(0~)의 변수부터 나머지와 값 비교 . 최대값을 찾아서 값 교환 . 기준 인덱스 증가 . 반복하며 내림차순 정렬 진행 . 흐름 {5, 6, 8, 1, 3} // max = 8 {8, 6, 5, 1, 3} // max = 6 {8, 6, 5, 1, 3} // max = 5 {8, 6, 5, 3, 1} // max = 3 {8, 6, 5, 3, 1} // max = 1 srand(time(0)); int score[5] = {0}; for(int i=0; i
2020. 7. 23.
[40] 다차원 리스트
다차원 리스트 . 리스트는 리스트를 담을 수 있다. . 선언 및 초기화 listname = [ [0] * N1 for in range(N2) ] nums = [[1, 2, 3],[4, 5, 6],[7, 8, 9]] for i in range(len(nums)): # 2차원 반복문 활용 for j in range(len(nums[i])): print(nums[i][j], end=" ") print() # 선언 및 초기화 # 3행 2열 (2차원 리스트) num = [[0] * 2 for i in range(3)] print(num) # [[0, 0], [0, 0], [0, 0]] # 맵 그리기 : 2차원 # 4행 5열 (2차원 리스트) map = [[0]*5 for i in range(4)] # 값의 초기화..
2020. 7. 23.
[38]-A. 리스트 컨트롤러
# 리스트 컨트롤러[2단계] # 1. 추가 # . 값을 입력받아 순차적으로 추가 # 2. 삭제(인덱스) # . 인덱스를 입력받아 해당 위치의 값 삭제 # 3. 삭제(값) # . 값을 입력받아 삭제 # . 없는 값 입력 시 예외처리 # 4. 삽입 # . 인덱스와 값을 입력받아 삽입 # 삭제 시, 주의 : 재정렬 # . [10, 20, 0, 40, 50] -> X # . [10, 20, 40, 50, 0] -> O datas = [0, 0, 0, 0, 0] cnt = 0 while True: print("--- Controller ---") # print for i in range(5): print("[%d]" % i, datas[i]) print("------------------") print("1) 추..
2020. 7. 23.
[38] 리스트 컨트롤러
실습예제 : 리스트 → 리스트 컨트롤러 만들기 1. 추가 . 값을 입력받아 순차적으로 추가 2. 삭제(인덱스) . 인덱스를 입력받아 해당 위치의 값 삭제 3. 삭제(값) . 값을 입력받아 삭제 . 없는 값 입력 시 예외처리 4. 삽입 . 인덱스와 값을 입력받아 삽입 삭제 시, 주의 : 재정렬 . [10, 20, 0, 40, 50] -> X . [10, 20, 40, 50, 0] -> O datas = [0, 0, 0, 0, 0] cnt = 0
2020. 7. 23.
[37]-A. 정렬
import random user = ["runner","blink","crown","superstar","avengers"] score = [0,0,0,0,0] for i in range(5): r_num = random.randint(10,100) score[i] = r_num # align for i in range(5):# score 리스트를 돌면서, max = score[i]# 최대값을 기억 max_idx = i# 최대값의 인덱스도 기억 for j in range(i,5):# ㄴ 비교하는 범위 if score[j] > max:# ㄴ max값과 비교 max = score[j] max_idx = j temp = score[i]# 최대값 발견 시, 값 교체 score[i] = max score[max..
2020. 7. 23.
[36]-A. TIC TAC TOE
map = [0,0,0,0,0,0,0,0,0] # RUN run = True while run : # 초기화 print("New Game!") for i in range(9): map[i] = i+1 p1 = 0 p2 = 0 win = 0 turn = 0 while True : print("--TIC TAC TOE--") for i in range(9): if map[i] == 11: print("[ ■ ]", end="") elif map[i] == 22: print("[ □ ]", end="") else: print("[ %d ]" % map[i], end="") if i % 3 == 2: print() print("---------------") # result if win == 11: print(..
2020. 7. 23.
[36] TIC TAC TOE
실습예제 : 1차원 배열 → TIC TAC TOE . 워밍업 # 워밍업 # . map 리스트를 3x3 바둑판 모양으로 출력해보자 # . index의 증가하는 규칙을 응용하여 줄바꿈 # . 출력예) # 1 2 3 # 4 5 6 # 7 8 9 map = [1,2,3,4,5,6,7,8,9] 더보기 map = [1,2,3,4,5,6,7,8,9] for i in range(9): print(map[i], end=" ") # default 줄바꿈 해제 if i % 3 == 2: # 줄바꿈 조건 설정 print() . 플레이어 2명이 번갈아가며 인덱스 입력 [0~8] . 이미 차지한 인덱스는 입력불가 (alert) . P1 과 P2의 표식을 다르게 출력 (O,X) . 먼저 1줄 완성한 플레이어가 승리! ㄴ 가로 / ..
2020. 7. 23.
[34] 튜플
튜플 Tuple 1) 선언 a = ( ) a = (10, 20, 30, 40) 2) 사용 print(a[3]) 3) 특징 . 여러 종류의 값을 저장할 수 있다. . 불변 시퀀스 (리스트와의 차이점) # 리스트와의 차이점 a = ["apple", 'a', 20, 3.14, True] b = ("blue", 'b', 10, 3.14, False) print("튜플 출력") for i in range(5): print(b[i]) print("리스트 출력") for i in range(5): print(a[i]) # 예시 a[2] = 100 print(a[2]) b[2] = 200# error print(b[2]) # 리스트 : mutable 변화할 수 있다. (가변) # 튜플 : immutable 변화할 수 ..
2020. 7. 23.
[37] 연습문제 : 2차원 배열
연습문제1 int d_arr[3][4] = {{1,2,3,4},{12,33,14,15},{23,24,25,26}}; int s_arr[12] = {0}; // 위 2차원의 값을 1차원 arr에 저장 후 출력 더보기 int k = 0; for(int i=0; i 303 ==> 3200 // 3. 주소 2개를 입력하면 관리비 교환 // 4. 관리비 가장많이 나온집 출력 더보기 int apt[3][4] = { {101, 102, 103, 104}, {201, 202, 203, 204}, {301, 302, 303, 304}, }; int pay[3][4] = { {1000, 1100, 1200, 1300}, {2000, 2100, 12200, 2300}, {3000, 3100, 3200, 3300}, }; /..
2020. 7. 23.