class 2

n=int(input())
num=map(int, input().split())
cnt=0
for i in num:
    chk=0
    if i>1:
        for j in range(2,i):
            if i%j==0:
                chk+=1
        if chk==0:
            cnt+=1
print(cnt)

<코드 설명>

입력 받을 숫자의 개수인 n을 입력받는다. 그리고 n개의 숫자를 num에 입력 받았다. cnt값은 0으로 초기화 해주었다.

num 속 숫자들을 하나씩 확인해주기 위해 for문을 사용해주었다.

chk를 0으로 초기화 해주고, i가 1이면 안되기 때문에 1보다 커야 한다는 조건을 주었다.

j를 2-i까지 지정해주며 i가 j로 나눠지는지 확인해주었다. 나눠지면 chk를 1씩 증가해주었다.

chk가 0이면 cnt값을 1추가해주며 소수의 개수를 구해주었다.

 

<실행 결과>

 

'Algorithm > BOJ' 카테고리의 다른 글

[BOJ] 1316 그룹 단어 체커  (0) 2022.06.26
[BOJ] 2108 통계학  (0) 2022.06.25
[BOJ] 1427 소트인사이드  (0) 2022.06.19
[BOJ] 2869 달팽이는 올라가고 싶다  (0) 2022.06.19
[BOJ] 10773 제로  (0) 2022.06.19

n=input()
arr=[]
for i in n:
    arr.append(int(i))
arr.sort(reverse=True)

for i in arr:
    print(i, end='')

<코드 설명>

숫자 n을 먼저 입력받는다. 이 때, 굳이 int를 씌울 필요는 없다.

arr라는 배열을 만들어 n을 순서대로 추가해준다.

그리고 arr배열을 reverse로 sort시켜준다. (내림차순)

이렇게 정렬한 arr배열을 순서대로 출력시켜주었다. 한 줄에 모두 출력시켜주기 위해 end=''를 추가해주었다.

 

<실행 결과>

'Algorithm > BOJ' 카테고리의 다른 글

[BOJ] 2108 통계학  (0) 2022.06.25
[BOJ] 1978 소수 찾기  (0) 2022.06.25
[BOJ] 2869 달팽이는 올라가고 싶다  (0) 2022.06.19
[BOJ] 10773 제로  (0) 2022.06.19
[BOJ] 1251 단어 나누기  (0) 2022.05.28

class 2

a, b, v = map(int, input().split())
if (v-b) % (a-b) == 0 :
    print((v-b) // (a-b))
else :
    print(((v-b) // (a-b)) +1)

<코드 설명>

올라가는 길이인 a, 내려가는 길이인 b, 총 높이인 v를 먼저 입력받는다.

v = (a-b)*횟수+a 이므로 횟수는 (v-a)/(a-b)이다.

나머지가 0이라면 그 나머지를 출력해주고, 그 않으면 1씩 더해가며 횟수를 증가시킨다.

 

<실행 결과>

'Algorithm > BOJ' 카테고리의 다른 글

[BOJ] 1978 소수 찾기  (0) 2022.06.25
[BOJ] 1427 소트인사이드  (0) 2022.06.19
[BOJ] 10773 제로  (0) 2022.06.19
[BOJ] 1251 단어 나누기  (0) 2022.05.28
[BOJ] 4949 균형잡힌 세상  (0) 2022.05.28

class 2

class Stack:
    def __init__(self, size):
        self.top=-1
        self.stack=[]
        self.size=size

    def push(self,item):
        if self.top < (self.size-1):
            self.top += 1
            self.stack.append(item)
        else: return
        
    def pop(self):
        if self.top > -1:
            self.top -=1
            return self.stack.pop()
        else: return

n=int(input())
s=Stack(n)
sum=0
for i in range(n):
    num=int(input())
    s.push(num)
    sum+=num
    if num==0:
        s.pop()
        sum-=s.pop()
print(sum)

<코드 설명>

class Stack으로 스택을 구현하였다. 

- push : top이 self.size-1보다 작으면 top에 1을 더해주고, item을 추가해준다.

- pop : top이 -1보다 큰 경우, top을 하나 줄이고 pop을 해준다.

 

먼저 스택의 사이즈인 n을 입력받아주고, s에 Stack(n)을 저장해주었다. 그리고 구해야 할 값인 sum을 0으로 초기화 해주었다.

 

n번동안, num을 input 받고 s에 이를 push해주었다. 그리고 sum에 num을 더해주었다. 만약 num이 0이라면 0을 pop해준 후, 이전 값을 pop해주어 이를 sum에서 빼주었다.

 

그리고 이렇게 구한 sum을 출력해주었다.

 

<실행 결과>

'Algorithm > BOJ' 카테고리의 다른 글

[BOJ] 1427 소트인사이드  (0) 2022.06.19
[BOJ] 2869 달팽이는 올라가고 싶다  (0) 2022.06.19
[BOJ] 1251 단어 나누기  (0) 2022.05.28
[BOJ] 4949 균형잡힌 세상  (0) 2022.05.28
[BOJ] 9012 괄호  (0) 2022.05.28

+ Recent posts