728x90
문제

컴퓨터를 제조하는 회사인 KOI 전자에서는 제조하는 컴퓨터마다 6자리의 고유번호를 매긴다. 고유번호의 처음 5자리에는 00000부터 99999까지의 수 중 하나가 주어지며 6번째 자리에는 검증수가 들어간다. 검증수는 고유번호의 처음 5자리에 들어가는 5개의 숫자를 각각 제곱한 수의 합을 10으로 나눈 나머지이다.

예를 들어 고유번호의 처음 5자리의 숫자들이 04256이면, 각 숫자를 제곱한 수들의 합 0+16+4+25+36 = 81 을 10으로 나눈 나머지인 1이 검증수이다.

입력

첫째 줄에 고유번호의 처음 5자리의 숫자들이 빈칸을 사이에 두고 하나씩 주어진다.

출력

첫째 줄에 검증수를 출력한다.

예제 입력
0 4 2 5 6
예제 출력
1
n1, n2, n3, n4, n5=map(int,input().split())
result=0
result+=(n1*n1)
result+=(n2*n2)
result+=(n3*n3)
result+=(n4*n4)
result+=(n5*n5)
result%=10
print(result)

오랜만에 python으로 문제를 풀어봐서 코드를 효율적으로 짜지는 못했는데요.

앞 게시물인 c언어 2475에서 언급한 단순히 모든 변수를 선언해 넣어주었습니다.

처음에는 input에 split만 활용하면 되는 줄 알았으나 숫자이므로 map을 활용해야 한다는 것을 알게 되었습니다.

그리고 파이썬은 별도로 형식 선언이 없어서 result를 0으로 하여 int형이라는 것만 알려주었습니다.

그리고 5개를 모두 더해주었고 10으로 나누어 주었습니다. 

그리고 이를 print 해 주었습니다.

 

기회가 된다면 조금 더 간단한 코드를 짜보겠습니다.

728x90
728x90
문제

컴퓨터를 제조하는 회사인 KOI 전자에서는 제조하는 컴퓨터마다 6자리의 고유번호를 매긴다. 고유번호의 처음 5자리에는 00000부터 99999까지의 수 중 하나가 주어지며 6번째 자리에는 검증수가 들어간다. 검증수는 고유번호의 처음 5자리에 들어가는 5개의 숫자를 각각 제곱한 수의 합을 10으로 나눈 나머지이다.

예를 들어 고유번호의 처음 5자리의 숫자들이 04256이면, 각 숫자를 제곱한 수들의 합 0+16+4+25+36 = 81 을 10으로 나눈 나머지인 1이 검증수이다.

 

입력

첫째 줄에 고유번호의 처음 5자리의 숫자들이 빈칸을 사이에 두고 하나씩 주어진다.

출력

첫째 줄에 검증수를 출력한다.

 

예제 입력
0 4 2 5 6
예제 출력
1
#include <stdio.h>
int main(void){
    int n[6], result=0;
    scanf("%d %d %d %d %d", &n[0], &n[1], &n[2], &n[3], &n[4]);
    for(int i=0;i<5;i++){
        result+=(n[i]*n[i]);
    }
    result%=10;
    printf("%d", result);
}

어떻게 해야 효율적으로 풀 수 있을까 많이 고민했던 문제입니다.

방법은 다 떠올랐는데 배열로 푸는 방법과 그냥 하나하나 변수를 선언해서 풀 수 있는 방법이었습니다.

for문에서 효율적으로 진행하기 위해 배열방식을 선택했습니다.

그리고 결과를 출력할 수 있는 result 변수에 제곱한 값을 넣어주었습니다. 

제곱 연산자도 있을 텐데 찾아보지 않고 그냥 풀어서 두번 곱해주는 방식을 취하였습니다.

 

for문이 끝난 뒤에 10으로 나누어지고 나머지를 출력해주어야 하므로 %를 활용해서 계산하여 출력을 해 주었습니다.

 

728x90
728x90

이번에 학교 수업 중에 xshell을 활용해야 하는 상황이 있었다.

ppt를 보고 따라갔지만 잘 못해서 도움을 받았다.

그래서 xshell을 사용하기 위해 세팅을 하는 방법을 소개하려고 한다.

 

 

우선 window terminalubuntu가 microsoft store에서

다운받았다는 전제하에 시작한다.

그리고 우분투에서 새로운 계정과 암호 설정을 하고 

리죽스 배포판에 적용된 wsl버전을

wsl --set-version Ubuntu 2

로 설정을 해주면 된다.

 

 

그렇다면 window terminal에서 ubuntu를 선택할 수 있다.

이제 xshell 부분을 설명하도록 하겠다.

 

먼저 xshell과 xttp을 다운을 받는다.

이것은 크게 어렵지 않다.

 

그리고 새로만들기를 이용해

이름부분에 원하는 이름, 그리고 호스트는 localhost로 설정해주었다.

 

그리고 사용자 인증을 클릭하면

이 페이지를 보게 된다.

 

여기서는 사용자 이름을 ubuntu 계정 설정한 것과 똑같이

설정을 해주어야 한다.

 

암호 역시 ubuntu에서 한 것과 똑같이 해주었다.

완성을 한뒤에 연결을 해도 안된다는 것을 확인할 수 있다.

 

그 이유는 바로 window terminal을 열어주지 않았기 때문이다.

 

윈도우 터미널에서 ubuntu를 열어준 뒤

sudo apt-get update
sudo apt-get install openssh-server
sudo ssh-keygen -A
sudo vi /etc/ssh/sshd_config

위 내용을 입력해주면 된다.

맨 마지막 것을 입력해주게 되면

위 사진과 같이 당황스러운 vi페이지를 마주하게 된다.

 

여기서 현재는 yes로 바뀌어져 있지만

주황색 글씨로 되어 있는

PasswordAuthentication 뒤에 no라고 적혀있을 것이다.

이것을 yes로 저장한뒤에

vi 저장방식 처럼 종료를 시키면 된다.

 

그리고 윈도우 터미널에서

sudo service ssh restart를 이용해 시작을 해준다.

그리고 터미널은 끄지 않고 가만히 두고

xshell을 연다.

 

기존에 켜진 채로 하고 있었다면 '다시 연결'을 해주면 되고

이제 열기 시작했다면 세션 선택창에서

맨 처음에 만들었던 세션을 열어주면 된다.

 

이렇게 하면된다.

 

그리고 다음에 실행할 때도

sudo service ssh restart와 함께 xshell을 해주면 된다.

이것은 매번 해주어야 하는 방식이다.

 

이 글이 xshell을 처음 쓰게 된 사람들에게 많은 도움이 되었으면 한다.

728x90

+ Recent posts