Computer_Study 336

러스트 hello world

fn main() { println!("Hello World!"); } 다음 코드는 hello world를 출력한다. c++와 다른점을 주목해보자 1. int main() 에서 fn 으로 변경되었다. 러스트에서는 함수를 fn으로 명칭 한다. (function) 2. println - println!은 러스트 매크로 라고불린다. 이는 추후에 다뤄볼 예정이다. rustc main.rs 컴파일링 방법 같은경우에는 C, C++와 같은듯하다. 문서에서는 "Cargo" 라는 build package 매니저를 사용한다. 간단한 러스트 프로그램은 의존성이 없지만 이에 의존성을 더하는데 더 쉬워질 것이다. cargo new myproject1 다음과 같이 만들어진다.

휴지통/러스트 2023.08.16

러스트 입문

러스트는 c, c++를 대체할 수 있는 언어로 등장하게 되었다. 최근 대회 검수중에 러스트로 코드를 작성하시는 분을 보고 그런 코드를 읽을 수 있는 수준은 되어야 된다고 생각하여 공부하게 되는 계기가 되었다. https://doc.rust-lang.org/book/ch01-00-getting-started.html Getting Started - The Rust Programming Language Let’s start your Rust journey! There’s a lot to learn, but every journey starts somewhere. In this chapter, we’ll discuss: Installing Rust on Linux, macOS, and Windows Writi..

휴지통/러스트 2023.08.16

기획 3 기획상세, 화면명세서 및 ERD

비슷한 웹 프로젝트중 현재 상용화되어있는 것들 중에서 어떤게 있는지 알아보자. 우선 대표적으로 Steam 게임 유통 사이트로 프로필에서 본인이 최근플레이한 게임 및 업적 배지 등을 확인할 수 있다. 그외에 본인 게임 현황을 확인할수 있는 사이트로는 리그오브레전드의 경우에 https://www.op.gg/ https://your.gg/ko/kr/home https://fow.kr/ 메이플스토리의 경우 https://maple.gg/ 그리고 듀오 등을 하고싶어 하는 사람들을 위해 https://shook.gg/party?game=lol 이러한 사이트들 역시 존재한다. 이들을 링크를 백준에서 다른 사이트 링크를 걸듯이 이런식으로 걸면 괜찮지 않을까? 싶다. 화면은 아직 그려보지는 않았지만 - 홈화면 - 게임별..

앳코더90 - 010 - Score Sum Queries(★2)

https://atcoder.jp/contests/typical90/tasks/typical90_j 010 - Score Sum Queries(★2) AtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online. atcoder.jp 구글 번역을 한번 돌리고 읽어보니 별 2개짜리라 그런가 풀이가 바로 보였다. 1~N번 학생이 1번수업 또는 2번수업에서 몇점을 맞았는지가 나온다. 쿼리가 주어질때 A ~ B번 학생들이 1번수업 2번수업의 점수 총합을 각각 구하는것이다. 바로 생각나는것이? prefix Sum이다. 처음에 전처리를 해놓고 쿼리마다 출력하면 된다...

백엔드 오답노트 2 Test란?

백엔드에서 진행하는 테스트는 종류가 많다. 유닛테스트, 통합테스트등 하나씩 알아가 보자. 단위테스트란? - 외부에 의존성이 없는 소프트웨어 단위 테스트 BDD - Given - When - Then 통합테스트란? - 둘 이상의 시스템요소를 통합한 테스트 Mock 테스트와 Stub 테스트의 차이는 무엇일까? 우선 각 용어를 알아보자. Mock : 예상되는 기대값, 미리 프로그래밍 객체 Stub : 테스트 중에 만들어진 호출에 미리 준비된 답변 음... 이것만 봐서는 잘 모르겠다. 큰 차이점만 본다면 Mock 은 Behavior verification 행위검증 : 메소드의 리턴값으로 판단할 수 없는경우, 특정 동작을 잘 수행했는지 Stub 는 State verification 상태검증 : 객체의 상태를 확인..

앳코더90 - 009 - Three Point Angle(★6)

https://atcoder.jp/contests/typical90/tasks/typical90_i 009 - Three Point Angle(★6) AtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online. atcoder.jp 문제는 간단하다. 푸는 방법을 모를뿐 좌표가 N개 주어진다. 이중 3개를 골라서 3개의 각이 가장 크게하라. 기하학 문제고 가장 쉽게 생각나는 방법은 브루트포스로 3개를 고르는것이다. 하지만 이는 NC3으로 O(N^3) 으로 시간초과가 난다. 정해역시 모르겠으니 에디토리얼을 참고하며 이 방법을 구현해보자. #define _CR..

앳코더90 - 008 - AtCounter(★4)

https://atcoder.jp/contests/typical90/tasks/typical90_h 008 - AtCounter(★4) AtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online. atcoder.jp 문제를 읽어보자마자 이건 dp 라는 생각이들었다. 100000 크기의 문자열이 주어졌을때 이 안에 atcoder가 얼마나 들어있는지 개수를 세라는것이다. 핵심로직은 바로 떠올랐지만 구현하는데 어려움을 겪었다. cache[i][j] i를 index j를 atcoder의 index로 잡고 저장하는값은 개수이다. 핵심은 a가 나왔을때 이를 다음 ..

기획 2 무엇을 만들어볼까?

솔브닥을 보면 알고리즘 문제를 푸는것 처럼 게임 티어 올리듯 즐길 수 있게 해놓은 시스템이 정말 좋았던것 같다. 그리고 비슷한 프로그래밍 대회 사이트인 코드포스나 앳코더등을 링크하여 이사람은 이렇게 잘하는 사람이구나 이러한 문제들을 풀었구나를 보여줄 수 있었던것같다. 이를 진짜 게임을 대상으로 할 수 있을까? 유튜브만 봐도 세상 정말 이상한 게이머들이 많다. 이러한 사람들을 profile화 해서 보여주는 식으로 할 수 있지 않을까..? 뭐 사실 미니 프로젝트라서 깊이있게 생각해보진 않아서 배운것을 활용한다. 라는 느낌으로 진행해보려고한다. 결론 : 게임스펙 정리 사이트 다음 내용 ERD그려보기

앳코더90 - 007 - CP Classes(★3)

https://atcoder.jp/contests/typical90/tasks/typical90_g 007 - CP Classes(★3) AtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online. atcoder.jp N개의 A값을 가진 class가 나온다. B점수가 class를 들어갈때 오차가 최소가 되게하는 불만도( abs(A-B))를 구하라. 문제 자체가 직관적이여서 풀이를 떠오르는데는 어렵지 않았는데 구현하는데 어려움을 겪었다. Aclass를 sorting하고 N의 크기가 300000이기 때문에 이분탐색을 이용해서 가장 오차의값이 적은 class..