728x90

개념

- 서버가 제공하는 성능 및 부하를 측정할 수 있는 도구

- 순수 Java 애플리케이션 오픈소스

- 서버, 네트워크, 개체에 대해 과부하를 시뮬레이션 할 수 있다.

 

 

특징

- 다양한 프로토콜/서버 테스트 가능

- CLI 지원 (command-line interface)

- 시나리오 기반 테스트 가능

- 다양한 외부 플러그인 사용하여 기능 확장 가능

 

 

 

한계

- 한 Worker에서 시뮬레이션 할 수 있는 사용자 수가 제한적

- 분산 환경 설치가 쉽지 않다.

728x90

'🟢 개념 정리 > Server' 카테고리의 다른 글

Apache Server  (0) 2023.06.20
서버 테스트 종류  (0) 2023.06.20
nGrinder란?  (0) 2023.06.20
728x90

범위가 작아 조합으로 풀었다. check 함수 내의 반복문에서 실수가 있어서 시간이 좀 걸렸다.

import sys
from itertools import combinations
import math
 
def check(k,list):
 
    answer = 0
 
    for i in range(0,len(list)-1):
        for j in range(i+1,len(list)):
 
            answer += k[list[i]][list[j]]
            answer += k[list[j]][list[i]]
 
    return answer
 
 
 
 
num =int(input())
 
k = [ ]
 
for i in range(num):
    k.append(list(map(int,sys.stdin.readline().rstrip().split(" "))))
 
 
member = [ ]
 
for i in range(num):
    member.append(i)
 
all_sum = 0
 
for i in range(0,len(k)):
    all_sum += sum(k[i])
 
 
# 팀 나누기
 
first = list(combinations(member,int(num/2)))
 
answer = [ ]
 
for i in range(0,len(first)):
 
 
    temp = list(first[i])
 
    temp2 = [ ]
 
    for q in member:
        if q not in temp:
            temp2.append(q)
 
 
    temp_sum = check(k,temp)
 
    temp_sum2 = check(k,temp2)
 
 
 
 
    answer.append(int(math.fabs(temp_sum-temp_sum2)))
 
 
print(min(answer))
 
728x90
728x90

순열로 풀었다.

import sys
from itertools import permutations
 
def check(list,k):
 
    for i in range(0,len(list)-1):
 
        bu = k[i]
 
        if bu=='<':
 
            if list[i]>list[i+1]:
                return "00"
 
        else:
 
            if list[i]<list[i+1]:
                return "00"
 
 
    return list
 
 
 
 
 
 
num = int(input())
 
k = list(sys.stdin.readline().rstrip().split(" "))
 
number = [0,1,2,3,4,5,6,7,8,9]
 
temp = list(permutations(number,num+1))
 
answer = [ ]
 
 
for i in range(0,len(temp)):
 
    if check(temp[i],k) != "00":
 
        answer.append(check(temp[i],k))
 
max_answer = list(max(answer))
min_answer = list(min(answer))
 
for i in max_answer:
    print(i,end="")
 
print()
for i in min_answer:
    print(i,end="")
 
 
 
 
 
728x90
728x90

숫자가 작아서 조합으로 풀었다.

import sys
from itertools import combinations
 
 
L,C = list(map(int,sys.stdin.readline().rstrip().split(" ")))
 
k = list(sys.stdin.readline().rstrip().split(" "))
 
mo = ['a','e','i','o','u']
 
 
temp = list(combinations(k,L))
 
answer = [ ]
 
for i in range(0,len(temp)):
 
    a = temp[i]
 
    momo = 0
    jaja = 0
 
    for j in range(0,len(a)):
 
        if a[j] in mo:
            momo += 1
        else:
            jaja += 1
 
    if momo>=1 and jaja>=2:
 
        a = list(sorted(a))
 
        answer.append("".join(a))
 
answer = list(sorted(answer))
 
for i in answer:
    print(i)
 
 
 
 
 
 
728x90
728x90

N값이 작아 조합으로 풀었다. 89%에서 계속 에러가 떴는데 조합 선언 시 오류가 있었다.

import sys
from itertools import combinations
 
def check(k,num):
 
    answer = 0
 
    for i in range(0,len(k)-1):
 
        if k[i][1]>k[i+1][0]:
            return answer
        else:
            if k[i][1]>=num:
                return answer
            else:
                answer += k[i][2]
 
 
    if k[-1][1]<=num:
        answer += k[-1][2]
 
 
    return answer
 
 
 
 
num = int(input())
 
k = [ ]
 
for i in range(num):
    temp = (list(map(int,sys.stdin.readline().rstrip().split(" "))))
 
 
    k.append([i,temp[0]+i,temp[1]])
 
 
 
answer = [ ]
 
for i in range(1,num+1):    
 
    temp = list(combinations(k,i))
 
    for j in range(0,len(temp)):
 
        answer.append(check(temp[j],num))
 
print(max(answer))
 
 
728x90
728x90

주어진 도시의 개수가 작은 걸 보고 순열로 풀었다. 마지막 -> 처음 을 고려해주어야 한다.

import sys
from itertools import permutations
 
def check(list,k):
 
    answer = 0
 
    # list = [0,1,2,3]
 
    if k[list[-1]][list[0]] == 0:
        return 100000000000
    else:
        answer += k[list[-1]][list[0]]
 
    for i in range(0,len(list)-1):
 
        start = list[i]
        end = list[i+1]
 
        if  k[start][end] == 0:
            return 100000000000
 
        else:
            answer += k[start][end]
 
    return answer
 
 
 
num = int(input())
 
city = [ ]
 
for i in range(0,num):
    city.append(i)
 
k = [ ]
 
for i in range(num):
    k.append(list(map(int,input().split(" "))))
 
 
temp = list(permutations(city))
 
answer = 100000000000
 
 
 
 
for i in range(0,len(temp)):    
 
    if check(list(temp[i]),k) < answer:
        answer = check(temp[i],k)
 
 
print(answer)
 
 
 
 
 
 
728x90
728x90

순열로 풀었다. 주어진 N 의 조건이 작아서 시간초과에 걸리지 않았다. 

import sys
from itertools import product
 
def check(k):
 
    answer = 0
 
    num = [1,2,3]
 
    mins = int(k//3)
    maxs = k
 
    for i in range(mins,maxs+1):
 
        temp = list(product(num,repeat=i))
 
        for i in range(0,len(temp)):
            if sum(temp[i]) == k:
                answer+=1
 
    return answer
 
 
 
 
num = int(input())
 
for i in range(num):
 
    k = int(input())
 
    print(check(k))
 
728x90
728x90

오류가 계속 나왔었고 계속 시도해서 풀었다. check 의 열 구하는 과정에서 for 문 안에 기호가 틀린 부분이 있었다.

import sys
from itertools import permutations
from collections import deque
 
def check(k):
 
    answer = 0
 
    for i in range(0,len(k)):
 
        count = 1
 
        for j in range(1,len(k[i])):
 
            if k[i][j] == k[i][j-1]:
                count+=1
            else:
                count = 1
 
            if count>answer:
                answer = count
 
 
 
    for i in range(0,len(k)):
 
        count = 1
 
        for j in range(1,len(k[i])):
 
            if k[j][i] == k[j-1][i]:
                count+=1
            else:
                count = 1
 
            if count>answer:
                answer = count
 
    return answer
 
 
 
n = int(sys.stdin.readline())
 
k = [ ]
 
 
for i in range(n):
    k.append(list(sys.stdin.readline().rstrip()))
 
 
dx = [1,0]
dy = [0,-1]
 
# 주변 체크 하면서 바꿔보고 확인하고 answer 에 넣기
 
answer = [ ]
 
queue = deque()
 
queue.append([0,0])
 
ch = [ ]
 
ch.append([0,0])
 
for i in range(0,len(k)):
    for j in range(0,len(k[i])):       
 
 
        x,y = i,j
 
        for z in range(0,2):
            temp_x = x + dx[z]
            temp_y = y + dy[z]
 
            if 0<=temp_x<n and 0<=temp_y<n and k[temp_x][temp_y]!=k[x][y]:
 
 
                answer.append(check(k))
 
                temp = k[x][y]
                k[x][y] = k[temp_x][temp_y]
                k[temp_x][temp_y] = temp
 
 
 
                answer.append(check(k))
 
                temp = k[x][y]
                k[x][y] = k[temp_x][temp_y]
                k[temp_x][temp_y] = temp
 
                if [temp_x,temp_y] not in ch:
                    queue.append([temp_x,temp_y])
                    ch.append([temp_x,temp_y])
 
 
 
 
print(max(answer))
 
 
 
 
 
 
 
728x90

+ Recent posts