[SWEA] 13428. 숫자 조작(python)
📌문제 💪아이디어 수 나열하기 인덱스별로 검사하면서 입력된 string[i]와 작은 수(최솟값의 경우)/큰 수(최댓값의 경우) 비교하다가 해당인덱스의 갑소가 수가 다르면 자리를 바꿔준다. string에 작은 수와 큰 수를 비교하기위하여 min heap과 max heap을 사용하였다 0 처리하기 입력값이 0이 들어온 경우를 제외하고는 인...
📌문제 💪아이디어 수 나열하기 인덱스별로 검사하면서 입력된 string[i]와 작은 수(최솟값의 경우)/큰 수(최댓값의 경우) 비교하다가 해당인덱스의 갑소가 수가 다르면 자리를 바꿔준다. string에 작은 수와 큰 수를 비교하기위하여 min heap과 max heap을 사용하였다 0 처리하기 입력값이 0이 들어온 경우를 제외하고는 인...
배열의 데이터는 인덱스를 사용하여 접근할 수 있다. 그렇다면 배열에서 원하는 값이 있는지 찾는 방법에는 무엇이 있을까? 선형탐색 가장 먼저 떠올릴 수 있는 방법이 선형탐색이다. 처음부터 끝까지 하나하나 다 찾아보는 것이다. public static int Linear_Search(int[] arr, int target){ for (int i...
#include <stdio.h> int main() { printf("hello,world!"); } 컴파일러가 프로그램을 실행하는 순서는 다음과 같다. preprocessing(전처리과정) #로 시작되는 코드는 컴파일러가 main()안에 있는 코드를 실행하기 전에 무언가를 실행하도록 알려준다. 예를 들어 #inc...
📌문제 💪아이디어 처음에는 re를 사용하여 알고리즘을 작성했는데 SWEA에서는 import re를 사용할 수 없었다. 입력값 다 받기 처음에는 입력값이 주석떄문에 행나눠서 제시된줄 알아서 input()으로 입력값을 받았는데 테스트케이스에서 자꾸 런타임에러가 떴다. 행이 나뉜채로 문장이 입력되는 테스트케이스가 있었다. .,!,?이 문장을 나뉘...
📌문제 💪아이디어 조합 계산 조합관련 문제이므로 펙토리얼을 구현하려고 하였다. python에는 combination값을 계산하는 math.comb(n,r)함수가 있어서 사용하려하였지만 n의 최대값이 1e6이었기 때문에 시간초과가 나타났다. 그래서 직접 펙토리얼을 구현해야했다. factorial 구현 $Comb...
📌문제 💪아이디어 그래프 간선 표시하기 defaultdict을 사용하여 key값은 노드 value값은 노드와 연결된 다른 노드를 추가하는 형식으로 그래프 간선을 표시하였다. 이차원배열을 사용하여 표현할 수도 있었지만 2.에서 노드 조합을 찾을때 defaultdict이 for문을 돌면서 더 직관적이라 판단되었다. 노드간의 연결된 간선따라...
컴퓨터는 유한한 메모리(RAM)를 가지기 때문에 유한한 크키의 비트만 저장할 수 있다. 따라서 그 유한한 비트 값을 넘는 수는 저장할 수 없다. 이러한 하드웨어의 한계로 인하여 발생하는 문제를 오버플로우라 한다. 대표적인 오버플로우 문제 : 부동 소수점 부정확성 부동 소수점(32bits)은 sign을 나타내는 부분 s(1bit) + 지수부분...
이전 포스트까지는 컴퓨터가 입력을 처리하는 방식에 대하여 서술하였다. 그렇다면 컴퓨터는 입력받은 정보를 어떻게 출력할까? 알고리즘 알고리즘은 input을 output으로 바꾸기 위한 문제를 해결하는 단계적(절차적,순서적)인 방법이다. 같은 output이더라도 어떤 알고리즘을 사용하느냐에 따라서 시간복잡도가 다를 수 있다. 따라서 알고리즘에서 중요한 ...
컴퓨터가 숫자를 나타낼 때는 bit를 사용하였다. 그렇다면 문자를 나타낼 땐 어떤 표현 방식을 사용할까? ASCII 바로 문자를 숫자로 바꾸어 표현하는 ASCII를 사용한다. 대문자를 아스키코드로 나타내면 다음과 같다. ...
2진법 2진법은 컴퓨터가 수를 표현하는 방법이다 우리는 일상생활에서 1,2,3,4,5,6,7,8,9 를 사용하여 수를 나타내는데 이는 10진법이다. 123 = 1 * 100 + 2 * 10 + 3 * 1 이를 이용하여 우리는 수를 10의 거듭제곱으로 표기한다. 컴퓨터는 0,1만으로 글자,이미지 등을 나타내는 2진법을 사용한다. 즉, 컴퓨터는 2...