본문 바로가기
반응형

전체 글183

백준 1966번 프린터 큐 | python https://www.acmicpc.net/problem/1966 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net 문제 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 쌓여서 FIFO - First In First Out - 에 따라 인쇄가 되게 된다. 하지만 상근이는 새로운 프린터기 내부 소프트웨어를 개발하였는데, 이 프린터기는 다음과 같은 조건에 따라 인쇄를 하게 된다.. 2023. 1. 24.
한글 오토마타 만들기 - 3 문자열 변환하기 문자열을 변환하는 작업은 한글로 변환하면서 해당 문자가 초성인지, 중성인지, 종성인지 판단하는 것도 중요하다. 이를 구분하기 위해 5가지로 분류할 수 있는데, 자음만 있는 경우 -> c 초성인 경우 -> l 모음인 경우 -> v 종성인 경우 -> t 로 지정해주고 나머지는 그대로 값을 넣어준다. def MakeHangeul(words: str) -> str: # ----- 중략 ----- # 입력 받은 값을 저장하고 단어 조합하기 위한 값을 저장하는 변수 result, result_state = "", [] idx, n = 0, len(words) # 입력 받은 것을 index에 따라 저장을 # 초성: l, 모음: v, 종성: t, 자음만: c 로 분류하며 저장 while idx < n:.. 2023. 1. 18.
한글 오토마타 만들기 - 2 한글 변환 위한 준비 작업 이제 받아온 문자열에서 영어를 키보드의 한글과 mapping하여 "ㅎㅏㄴㄱㅡㄹ" 같이 만드는 작업을 진행할 것이다. 여기서, 변환 작업을 진행하기 위해서는 키보드 자판의 영어들이 한글의 어떠한 것과 매칭되어 있는지 잘 파악하고 작업을 진행해야 한다. 예시로 "a"는 "ㅁ"과 매칭되어 있으니 "a": 0x3141("ㅁ"의 아스키코드)로 하는 dictionary를 만들어 준다. keyval = { "A": 0, "B": 0, "C": 0, "D": 0, "E": 0x3138, "F": 0, "G": 0, "H": 0, "I": 0, "J": 0, "K": 0, "L": 0, "M": 0, "N": 0, "O": 0x3152, "P": 0x3156, "Q": 0x3143, "R": .. 2023. 1. 18.
한글 오토마타 만들기 - 1 오토마타란? 오토마타는 이산 시간 동안 주어진 입력에 의존해 작동하는 수학적인 기계이다. 기계는 일정 주기마다 입력을 하나씩 받는데, 이를 기호 또는 문자라고 한다. 기계가 입력받는 문자는 정해진 집합의 한 원소여야 하며, 이를 알파벳이라 한다. 기계가 입력받는 일련의 기호와 문자를 문자열이라 한다. 기계는 유한한 상태의 집합을 갖고 있으며, 입력에 따라 현재 상태에서 정해진 다음 상태로 전이한다. 현재 상태와 입력, 다음 상태는 수학적으로 함수 또는 관계로 주어진다. 이를 전이 함수 또는 전이 관계라 한다. 기계는 입력의 끝을 만나거나 특정 상태에 있을 때 정지할 수 있다. 기계는 정지했을 때 문자열을 수용하거나 거부한다. (출처: 위키백과 - 오토마타 이론) 위 설명대로 오토마타 이론은 활용하여 입력.. 2023. 1. 18.
인코딩이란 - 2. base64 Encoding / Decoding 이번에 진행한 base64 인코딩/디코딩은 UTF-8을 기준으로 진행했다. Encoding은 일상 언어를 bits로 변환하는 작업이고, Decoding을 해당 bits를 적절한 언어로 변환하는 작업이다. 기본적으로 문자는 8bits로 이루어져 있고 이를 Encoding을 진행하는 경우, 입력받은 문자를 8bits로 만들고 6bits로 나누어 변환을 진행. Man을 예시로 Encoding을 진행하면, 위 그림처럼 작성이 되고 남는 구간은 0으로 채워 넣는다. 그리고 000000의 문자는 "="으로 padding. Decoding은 위 작업을 반대로 진행하면 된다. Encoding / Decoding 시에는 "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz012.. 2023. 1. 18.
인코딩이란? - 1 컴퓨터가 발명되고 긴 시간 동안 발전하면서 언어를 컴퓨터로 처리하는 방식이 필요했었다. 우리 일상의 언어를 처리하기 위한 연구가 서양권에서 먼저 시작이 되면서 알파벳 처리에 대한 연구가 가장 먼저 시작이 됨. 이후 세계적으로 컴퓨터 시장이 커지게 되면서 다른 국가의 언어도 처리할 필요가 느껴지면서 끊임없이 연구가 진행이 되어왔다. 영어의 문자 집합과 인코딩 최초의 컴퓨터인 에니악이 만들어진 이루 약 15년이 지나서야 문자 집합이라는 개념이 생김. 시초는 아스키(ASCII)인데 이는 0x00 ~ 0x7F까지 총 127개 문자로 이루어져있음. 이는 영어를 표현하는 데 있어 큰 문제가 없었지만, 유럽 언어를 표현하는데 사용할 수 없었다. 이러한 문제를 해결하기 위해 ASCII를 제정하여 기존 127개에서 0x.. 2023. 1. 17.
[현대오토에버] 22년 하반기 신입 코딩테스트 후기_최최최최종 이번 주도 잊지 않고 돌아온 현대오토에버 신입 채용 코딩테스트이다. ​ 221217에 진행이 되었고 역시나 아침 10부터 시험이 진행이 되었다. ​ 시험은 3시간에 3문제로 이루어졌고, 난이도는 히든테케를 생각하지않으면 쉽게 출제가 되었다. 어렵지 않게 문제를 풀었는데 마지막 문제가 너무 쉽다는 의문이 들어 고민을 좀 하다가 평소보다 늦게 종료를 했다. ​ 문제의 경우, ​ 매출과 관련한 리스트 문제였는데, ​ 짝수는 지금까지의 짝수의 합이고 홀수는 지금까지 홀수 주차의 합 + 1 식해서 주어진 주차의 값을 구하는 느낌의 문제였던 걸로 기억한다. ​ 차량을 판매하는데 차종과 색깔을 판매하고 가장 많이 팔린 차종과 가장 많이 팔린 색의 조합의 판매 대수, 그냥 가장 많이 팔린 차량 대수를 출력하는 문제 ​.. 2022. 12. 23.
[네이버 파이낸셜] NAVER FINANCIAL 코딩테스트 후기 현대오토에버랑 같은 날 시험을 쳤지만, 결과 발표는 엄청 빠르게 나왔다. 한 3일 정도 걸린 듯?? ​ 네파 경우에는 내가 프론트엔드를 지원해서 Javascript만 사용할 수 있었는데 이를 위해 남은 시간동안 Javascript로 문제 푸는 연습을 지속적으로 했다. ​ 문제는 총 3문제로 출제 되었으며 ​ 하나는 공항 탑승 수속을 밟는 상황에서 같은 날에는 같은 브랜드의 항공사 비행기만 띄울 수 있어 이를 둘 수 있는 날짜를 출력하는 문제였다 내 생각에는 아마 이 문제를 DP로 푼거 같은데.. ​ 다음은 계좌정보가 주어지고 해당 계좌 이름이 주어진 조건에 맞는 것인지 판단하고 모든 조건을 만족하는 계좌의 수를 출력하는 문제였다. 이건 그냥 몸풀기 같은 문제 같은 느낌이어서 호로록 풀려고 했는데 Java.. 2022. 12. 23.
[지멘스] SIEMENS 면접 후기 지멘스 면접을 운이 좋게 보게 되었는데, 이번 기업의 경우에는 B2B를 전문으로 하는 기업이라 그런지 많이 접해보지는 못했고 정보도 많이 없는 것 같아 내가 직접 작성을 해보려고 한다. 한국지멘스의 경우에는 외국계 기업이고 수시채용을 주로 하고 있어서 우리가 아는 사람인, 잡코리아, 자소설닷컴 보다는 기업 홈페이지를 주기적으로 보는 것을 추천하는데 나도 우연히 검색을 하다가 괜찮은 포지션이 나와서 지원을 하게 되었다. 면접 결과 같은 경우에는 1 ~ 2 주일 정도 걸린 느낌이고 최대한 많은 인원을 채용하려고 하는 듯 했다. 기업 관련 내용을 조사해봐도 자세히 나오지 않아 최대한 내가 아는선에서 준비를 했다. 면접 당일이 되었고 복장에 대한 내용이 나와있지않아 정장을 입고 출발을 했다. 면접은 본사에서 진.. 2022. 12. 13.
반응형