문제

 

내가 작성한 코드
# 테스트 케이스의 개수
n = int(input())

# 테스트 케이스 입력
for i in range(n): # 각 테스트 케이스 출력위한 반복문

    case = input()
    score = 0                # 출력을 위한 값
    cnt = 0                  # 'O'가 연속일 때 증가하기 위한 값
    
    for j in case:
        
        if j == 'X':         # 'X'일 경우에 cnt 변수를 0으로, 그리고 건너뛰기
            cnt = 0
            continue
            
        cnt += 1             # 'O'일 경우에, cnt 변수를 1씩 증가, score 변수에 cnt 값 추가
        score += cnt
        
    print(score)

 

코드 설명

> 'n' 이라는 변수에 테스트 케이스 개수를 받으려고 하였음

> 두 번에 반복문을 사용하여 한 번은 input() 함수를 사용하여 n개의 값을 입력받고, 각 값을 입력받을 때마다 그 값을 반복문을 통해 'O'일 때는 cnt를 1씩 늘리고, score 변수에는 cnt 를 추가해준다. 그리고' X 일 때는, cnt를 다시 0으로 설정해주고 continue를 통해 빠져나온다.

> 좀 더 쉽게 작성하려고 Counter 함수를 사용하려고 했는데... 떠오르지가 않는다 ㅜㅜ

문제

 

내가 작성한 코드
# 시험 본 과목의 개수 N 입력
n = int(input())

# 각 과목의 성적 입력
scores = list(map(int, input().split()))

# 새로운 평균 출력
max_v = max(scores)
mean_v = ( (sum(scores) / max_v) * 100 ) / n
print(mean_v)

 

 

 

문제

 

내가 작성한 코드
# 10개의 서로 다른 숫자를 42로 나눈 나머지로 입력
result = []

for i in range(10):
    new_v = int(input())
    result.append(new_v%42)
    
# 서로 다른 나머지 개수 출력
print(len(set(result)))  # 중복값을 제거하기 위해 set()을 사용

 

틀렸던 코드
# 10개의 서로 다른 숫자를 42로 나눈 나머지로 입력
result = () # 중복값을 제거하기 위해 set()을 사용

for i in range(10):
    new_v = int(input())
    result.append(new_v%42)
    
# 서로 다른 나머지 개수 출력
print(len(result))

> 집합 자료형(set)은 새로운 원소를 넣고자 할 때에는 append가 아닌 add와 update 를 사용한다.

> add는 하나의 원소를 추가할 때 쓰이고, update는 한꺼번에 여러 개의 원소를 추가할 때 쓸 수 있다.

> 추가로 remove 매소드를 사용해서 값을 삭제할 수 있다.

문제

 

내가 작성한 코드

방법1)

# 세 개의 자연수 A, B, C 입력
a = int(input())
b = int(input())
c = int(input())

# A X B X C 결과
result = str(a * b * c)

# 0~9 숫자 순서대로 출력
for i in range(10):
    print(len([a for a in result if a == str(i)]))

 

방법2)

from collections import Counter

# 세 개의 자연수 A, B, C 입력
a = int(input())
b = int(input())
c = int(input())

# A X B X C 결과
result = str(a * b * c)
Counter(result)['0']

for i in range(10):
    if str(i) not in Counter(result):
        print(0)
    else:
        print(Counter(result)[str(i)])

 

아쉬웠던 점

> Conter 라이브러리 사용하는 법을 까먹어서 처음에 생각했던 대로 코드를 작성하지 못했다.. Counter 라이브러리에 대해서 공부하자!!

문제

 

내가 작성한 코드
# 9개의 서로 다른 자연수가 주어짐
n = 9
max_v = 0
max_index = 0

for i in range(1, n+1):
    new_v = int(input())
    if max_v < new_v:
        max_v = new_v
        max_index = i
print(max_v)
print(max_index)

 

부족했던 점

> 코드 작성 시, 너무 길게 풀기보다는 간결하게 작성하려고 생각하자!!

문제

내가 작성한 코드
# N 입력받기
n = int(input())

# N개의 정수 입력받기
n_l = list(map(int, input().split()))

print(min(n_l), max(n_l))

 

부족했던 점

> N개의 정수 입력받기 할 때 list(map(int, input().split()) 이 부분은 공식이다!! 외우자!! 

목표

> 코딩 테스트를 위한 기본기를 다지자!!

> 네이버부스트캠프 AI TECH 4기 합격!!!

 

계획

> 네이버부스트캠프 AI TECH 시험 전까지 총 3회독을 목표

 

 

최종 결과

 

공부 자료 및 방법

1. 책

https://smartstore.naver.com/passpass/products/5656081702?NaPm=ct%3Dl4tfzdby%7Cci%3Dcheckout%7Ctr%3Dppc%7Ctrx%3D%7Chk%3D863922e743591961a89652697c5d35dcb005c6c3

 

2. 공부 방법

- 공부 기간 : 대략 1달

 

- 공부시간 : 평일(3시간) + 주말(6시간)

 

- 2021년 3회 시험 당시, 수제비 2021 실기 기본서를 보면서 공부했었습니다. 하지만, 책이 두껍다 보니 공부하면서 피로감이 심했고, 계속 잊어버리게 되는 비효율적인 공부를 했었던거 같습니다.

 

- 이번에는 문제를 풀기보다는 문제를 보면서, 해설을 같이 읽었습니다. 그렇게 대략 10회 정도는 해설지를 보면서 문제도 같이 봤습니다.

 

- 외운다고 생각하니 스트레스가 정말.... 정처기 실기는 나오는 범위가 많기에 외운다고 생각하지 않고 꾸준히 계속 봤습니다. 

 

- 집중적으로 코드 문제를 많이 공부했습니다. 파이썬은 꾸준히 공부했었기에, JAVA와 C 언어 공부를 주로 했습니다. 처음에는, 오픈 카톡방에도 들어가서 해보기도 했지만, 그냥 문제집에 있는 문제를 반복하면서 공부하다보니 문제가 어떻게 나올지 감을 잡을 수 있었습니다. 

 

- 시험 일주일전부터는, 모의고사를 안보면서 풀어보았습니다. 처음에는 결과가 처참했지만, 하루전쯤에는 커트라인 쯤으로 도달할 수 있었습니다. 시험 결과 보시다시피 60점 턱걸이... ㅎㅎ 

 

시험 후기

 

- 이번 시험 풀고 나왔을 때는 정말 너무 잘풀었고, 당연히 합격이라고 생각했었습니다. 같이 본 친구도 그랬었는데.... 수제비 사이트에서 나온 글들과 댓글을 보면서 점점 표정이 굳어졌던 기억이 납니다 ㅎㅎ

 

- 확실히, 코드 문제에서 거의 맞아야 합격에 가능성이 높아진다고 생각합니다. 저는 1문제 빼고 다 맞았던거 같습니다. 비전공자로서 다시는 보고 싶지 않은 시험 중에 하나라고 생각합니다.ㅋㅋㅋㅋ

 

포기하지 않으면, 결국 성공할 것이다. 화이팅!!

+ Recent posts