본문 바로가기

전체 글23

===와 !==, 참조 비교 연산자 - Swift 노션에서 보기 LeetCode의 Linked List Cycle 문제를 풀다가 ===를 ~=와 헷갈리는 바람에 gae고생을 하였다. 너무 크게 얻어 맞은 느낌이라 정리를 안 해도 까먹진 않을 것 같지만... 그래도 그냥 넘어가면 아쉬우니 정리를 해보려고 한다. 비교 연산자 (Comparison Operator) ===와 ~= 모두 비교 연산자에 속한다. === 의 반대 격이라고 할 수 있는 !== 도 당연히 비교 연산자다. 연산자 설명 == A == B : A와 B의 value가 같은가 != A != B : A와 B의 value가 다른가 > A > B : A의 value가 B의 value보다 큰가 = A >= B : A의 value가 B의 value보다 크거나 같은가 2021. 1. 13.
[백준] 1052: 물병 - Swift 풀이 노션에서 보기문제지민이는 N개의 물병을 가지고 있다. 각 물병에는 물을 무한대로 부을 수 있다. 처음에 모든 물병에는 물이 1리터씩 들어있다. 지민이는 이 물병을 또 다른 장소로 옮기려고 한다. 지민이는 한 번에 K개의 물병을 옮길 수 있다. 하지만, 지민이는 물을 낭비하기는 싫고, 이동을 한 번보다 많이 하기는 싫다. 따라서, 지민이는 물병의 물을 적절히 재분배해서, K개를 넘지 않는 비어있지 않은 물병을 만들려고 한다. 물은 다음과 같이 재분배 한다.먼저 같은 양의 물이 들어있는 물병 두 개를 고른다. 그 다음에 한 개의 물병에 다른 한 쪽에 있는 물을 모두 붓는다. 이 방법을 필요한 만큼 계속 한다.이런 제약 때문에, N개로 K개를 넘지않는 비어있지 않은 물병을 만드는 것이 불가능할 수도 있다. 다.. 2021. 1. 10.
[백준] 10757: 큰 수 A+B - Swift 풀이 노션에서 읽기 문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 입력: 첫째 줄에 A와 B가 주어진다. (0 < A,B < 10^10000) 출력: 첫째 줄에 A+B를 출력한다. 풀이 10의 10000승이면 Int64의 최댓값(9,223,372,036,854,775,807)을 한참 넘어가는 범위이다. 그래서 처음에는 18자리씩 끊어서 배열에 넣고 차례로 더하는 방식으로 풀어 보았다. 그랬더니 두 수의 자릿수가 다를 때의 처리가 너무너무 복잡해서 도저히 해결되지 않았다. 그래서 1자리 씩 끊는 것으로 방법을 바꿨다. let arr = readLine()!.split(separator: " ") let a = splitNum(String(arr[0])), b = splitNu.. 2021. 1. 10.
유닉스와 리눅스 노션에서 보기 🤷‍♀️ 이 학습이 필요한 이유 서버는 리눅스로 되어있다. 백엔드 개발자가 아니더라도 서버에 대한 이해는 필요하다. 터미널을 통해 서버에 접속하고 원하는 작업을 할 수 있도록 친숙해질 필요가 있다. ✏️ 리눅스와 유닉스 유닉스는 C언어를 기반으로 만들어진 OS이다. 오늘날 사용되고 있는 대부분 OS의 시초라고 봐도 무방하다. 켄 톰슨 & 데니스 리치 제작 리눅스도 그 중 하나다. 정확히 말하면 유닉스를 기반으로 한 교육용 OS인 미닉스가 변형되어 태어났다. 리누스 토르발즈 제작 미닉스를 만든 앤드루 테넌바움 교수의 학생이었던 리누스는 교수에게 미닉스를 개조해도 되는 지 물어보지만 거절 당한다. 매우 화가난 리누스는 홧김에 미닉스를 수정하여 자기 컴퓨터에서도 돌아가는 OS로 만들어서 무료 오.. 2021. 1. 8.
[백준] 1076: 저항 - Swift 노션에서 보기 문제 전자 제품에는 저항이 들어간다. 저항은 색 3개를 이용해서 그 저항이 몇 옴인지 나타낸다. 처음 색 2개는 저항의 값이고, 마지막 색은 곱해야 하는 값이다. 저항의 값은 다음 표를 이용해서 구한다. 예를 들어, 저항에 색이 yellow, violet, red였다면 저항의 값은 4,700이 된다. 입력: 첫째 줄에 첫 번째 색, 둘째 줄에 두 번째 색, 셋째 줄에 세 번째 색이 주어진다. 색은 모두 위의 표에 쓰여 있는 색만 주어진다. 출력: 입력으로 주어진 저항의 저항값을 계산하여 첫째 줄에 출력한다. 풀이 달리 어려울 게 없는 문제인데 아차차 포인트가 두개 정도 있었다. import Foundation let first = readLine()!, second = readLine()!.. 2021. 1. 6.
[백준] 1009: 분산 처리 - Swift 노션에서 보기 문제 재용이는 최신 컴퓨터 10대를 가지고 있다. 어느 날 재용이는 많은 데이터를 처리해야 될 일이 생겨서 각 컴퓨터에 1번부터 10번까지의 번호를 부여하고, 10대의 컴퓨터가 다음과 같은 방법으로 데이터들을 처리하기로 하였다. 1번 데이터는 1번 컴퓨터, 2번 데이터는 2번 컴퓨터, 3번 데이터는 3번 컴퓨터, ... , 10번 데이터는 10번 컴퓨터, 11번 데이터는 1번 컴퓨터, 12번 데이터는 2번 컴퓨터, ... 총 데이터의 개수는 항상 a^b개의 형태로 주어진다. 재용이는 문득 마지막 데이터가 처리될 컴퓨터의 번호가 궁금해졌다. 이를 수행해주는 프로그램을 작성하라. 입력: 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트 케이스에 대해 정수 a.. 2021. 1. 6.