4번째 스터디 이후 정리
·
💻 Programming Language/C#
catch 순서 뒤죽박죽해서 확인 class Program { class A { public int field; public static int getField(A obj) { return obj.field; } } static void Main(string[] args) { try { // DivideByZeroException int a = 10; int b = 0; Console.WriteLine(a / b); // NullReferenceException A obj = null; Console.WriteLine(A.getField(obj)); // IndexOutOfRangeException int[] arr = { 1, 2, 3 }; for (int i = 0; i < 4; i++) { Cons..
3번째 스터디 이후 정리
·
💻 Programming Language/C#
형변환과 관련하여 ... as 연산자는 참조형에만 사용이 가능하고 기본 값형식에는 사용이 불가능하다. 기본 값 형식에는 int, byte, char, long ... 기본 값 형식에 nullable => ? 키워드는 선언문에 들어가는 키워드이기에 사용가능 int => value 타입 INTEGER => reference 타입 string 은 기본 참조형이라고 문서에 나오는데 왜 안될까?? string은 참조 형식이지만 string는 참조가 아니라 string 개체의 값을 비교하도록 정의된다 String 과 string 의 차이는 없다. 다만 string이 System.String 클래스를 상속받아 구성되었다. 보통 string 을 사용할 것을 권장하긴한다. string a = "hello"; string..
[Programmers] 숫자 문자열과 영단어
·
💯 CodingTest/Programmers
def solution(s): words = {'zero': '0', 'one':'1', 'two':'2', 'three':'3','four':'4', 'five':'5', 'six':'6', 'seven':'7','eight':'8','nine':'9'} temp = '' answer = '' for c in s: if c in words.values() : answer += c else: temp += c if temp in words.keys() : answer += words[temp] temp = '' return int(answer) 초기 words 딕셔너리에 숫자의 영문표기를 키로하고 숫자(문자열)를 값으로 가지는 딕셔너리로 초기화 temp 문자열과 answer 문자열 선언 및 각각 빈 문자..
[Programmers] 신고결과 받기
·
💯 CodingTest/Programmers
def solution(id_list, report, k): count = dict() reportCount = dict() report = list(set(report)) # 동일 신고에 대한 중복값 처리를 위해 set 변환 후 list 변환 for id in id_list: # 딕셔너리 초기화 count[id] = 0 reportCount[id] = 0 for str in report : # report에 저장된 각각의 문자열 파싱해 신고 횟수 누적 src, trg = str.split(' ') count[trg] += 1 for str in report : # src, trg = str.split(' ') if count[trg] >= k : reportCount[src] += 1 return li..
GCD & LCM(최대공약수 & 최소공배수)
·
📚 Computer Science/Algorithms
최대공약수 def GCD(num1, num2) : if num2 == 0: return num1 else : return GCD(num2, num1 % num2) 최소 공배수(LCM) LCM = (a * b) / GCD(a, b) 최대공약수 최소공배수 구하기 예제 a, b = map(int, input().split()) def GCD(num1, num2) : if num2 == 0: return num1 else : return GCD(num2, num1 % num2) print(GCD(a, b)) print((a * b) // GCD(a,b))
Cocktail Sort(칵테일 정렬)
·
📚 Computer Science/Algorithms
양방향 거품정렬 (bidirectional bubble sort)라고도 불리며 버블정렬의 변형이다. 한번의 루틴마다 방향을 바꿔 정렬하는 알고리즘이다. 버블정렬과 크게 다르지는 않지만 버블 정렬보다 빠르다. 파이썬 예제 코드 def cocktail(arr, a, b): swapped = True while swapped == True: swapped = False for i in range(a, b): if arr[i] > arr[i+1]: arr[i], arr[i+1] = arr[i+1], arr[i] if swapped == False: break swapped = False b = b - 1 for i in range(b-1, a-1, -1): if arr[i] > arr[i+1]: arr[i], ..
Bubble Sort(버블 정렬)
·
📚 Computer Science/Algorithms
Bubble Sort(버블 정렬)은 두 인접한 원소를 검사하여 정렬하는 알고리즘이다. 시간복잡도는 O(n^2) 으로 상당히 느리지만, 코드자체가 단순해서 자주 사용된다. 이때 같은 방식으로 양방향 정렬을 하게되면 칵테일 정렬이 된다. 파이썬 예제 코드 def bubbleSort(x): length = len(x)-1 for i in range(length): for j in range(length-i): if x[j] > x[j+1]: x[j], x[j+1] = x[j+1], x[j] return x