#include <iostream>

using namespace std;

int main(void)
{
	int N = 0;
	int Max = 0;
	long double Sum = 0;
	
	cin >> N;
	
	if (N>0 and N<=1000)
	{
		long double Score[N] = {0,};
		
		for (int i=0; i<N; i++)
		{
			cin >> Score[i];
			if (Score[i]>=Max)
			{
				Max = Score[i];
			}
		}
		
		for (int j=0; j<N; j++)
		{
			Score[j] = (Score[j] / Max) * 100;
			Sum = Sum + Score[j];
		}
		
		cout << Sum/N << endl;
	}
	
	return 0;
}

오답 1

equation = input().split("-")
_sum = 0
for i in equation:
    if "+" in i:
        result = i.split("+")
        for i in range(len(result)):
            result[i] = int(result[i])
        _sum = sum(result)

for i in equation:
    if "+" not in i:
        _sum = int(i) - _sum
print (_sum)

오답 2

equation = input().split("-")
_sum = 0
for i in equation:
    if "+" in i:
        _sum += eval(i)

for i in equation:
    if "+" not in i:
        _sum = int(i) - _sum
print (_sum)

 

정답

equation = input().split("-")
answer = 0
for i in equation[0].split("+"):
    answer += int(i)
for i in equation[1:]:
    for j in i.split("+"):
        answer -= int(j)
print(answer)
import sys
input = sys.stdin.readline

def get_end_num(N):
    cnt = 0
    value = 0
    while True:
        if cnt == N:
            return value
        value +=1
        if "666" in str(value):
            cnt +=1

N = int(input())
value = get_end_num(N)
print (value)

 

import sys
input = sys.stdin.readline

N = input().strip('\n')
numbers = sorted(N, reverse=True)
numbers = int("".join(numbers))
print (numbers)

 

import sys
input = sys.stdin.readline
N = int(input())
alphabets = []
alpha_dict = {}

for _ in range(N):
    alphabets.append(input().rstrip())

for alphabet in alphabets:
    square_root = len(alphabet) - 1
    for char in alphabet:
        if char in alpha_dict:
            alpha_dict[char] += pow(10, square_root)
        else:
            alpha_dict[char] = pow(10, square_root)        
        square_root -= 1

alpha_dict = sorted(alpha_dict.values(), reverse=True)
result, _max = 0, 9
for i in alpha_dict:
    result += i * _max
    _max -= 1
print (result)

 

#include <stdio.h>

int main(void)
{
	int A = 0;
	int B = 0;
	
	scanf("%d %d", &A, &B);
	
	if (A < B)
		printf("<");
	
	if (A > B)
		printf(">");
		
	if (A == B)
		printf("==");
		
	return 0;
}

 

import sys

def check_group_word(word):
    cache = []
    for i in word:
        if i in cache:
            if i == cache[-1]:
                pass
            else:
                return False
        else:
            cache.append(i)
    return True

if __name__ == "__main__":
    input = sys.stdin.readline
    N = int(input())
    cnt = 0
    for _ in range(N):
        word = input()
        bool = check_group_word(word)
        if bool:
            cnt +=1

    print (cnt)

 

import sys
from itertools import combinations
input = sys.stdin.readline
N, S = list(map(int, input().split()))
nums = list(map(int, input().split()))
cnt = 0
for i in range(1, len(nums)+1):
    result = combinations(nums, i)
    for num in result:
        if (sum(num) == S):
            cnt += 1
print (cnt)

 

 

합이 S만 되면 되기 때문에 순서성이 필요 없는 조합을 사용.

import sys
input = sys.stdin.readline
N = int(input())

words = []
for _ in range(N):
    words.append(input().strip('\n'))

words = list(set(words))
words.sort(key=lambda x: (len(x), x))
for i in words:
    print (i)

리스트 정렬할 때 sort의 파라미터로 lambda 식을 사용해서 정렬 기준들을 사용할 수 있음.

N, K = list(map(int, input().split()))
peoples = [i+1 for i in range(N)]
sequence = []
idx = K - 1
        
for _ in range(N):
    if idx < len(peoples):
        sequence.append(peoples.pop(idx))
        idx = idx + K - 1
    
    elif idx >= len(peoples):
        idx = idx % len(peoples)
        sequence.append(peoples.pop(idx))
        idx = idx + K - 1

print ("<", ', '.join(str(i) for i in sequence), ">", sep='')

처음에 조건문을 idx <= len(peoples), idx > len(peoples)로 해서 오답으로 나왔음.

idx랑 len(peoples)가 같은 경우는 인덱스 초과이기 때문.

+ Recent posts