코딩 테스트, 초급, 문제풀이1,2

  Рет қаралды 3,822

코드없는 프로그래밍

코드없는 프로그래밍

Күн бұрын

Пікірлер: 12
@bromp8052
@bromp8052 Жыл бұрын
안녕하세요 영상 잘 보고있습니다! swift로 작성한 코드인데 ```swift class Solution { func isIsomorphic(_ s: String, _ t: String) -> Bool { let s: [Character] = Array(s) let t: [Character] = Array(t) var dict1: [Character: Character] = [:] var dict2: [Character: Character] = [:] for i in s.indices { let character1 = dict1[s[i]] let character2 = dict2[t[i]] if character1 == nil && character2 == nil { dict1[s[i]] = t[i] dict2[t[i]] = s[i] continue } if character1 == t[i] && character2 == s[i] { continue } return false } return true } } ``` ```swift func isIsomorphic(_ s: String, _ t: String) -> Bool { let s: [Character] = Array(s) let t: [Character] = Array(t) var dict1: [Character: Character] = [:] var dict2: [Character: Character] = [:] for i in s.indices { let character1 = dict1[s[i]] let character2 = dict2[t[i]] if character1 == nil && character2 == nil { dict1[s[i]] = t[i] dict2[t[i]] = s[i] continue } else if character1 == t[i] && character2 == s[i] { continue } return false } return true } ``` 두 코드의 차이점은 for문에서 else if 사용하는 부분만 다릅니다! 저는 첫번째 코드랑 두번째 코드랑 같다고 생각하는데 첫번째 코드는 리트코드에서 실행하면 컴파일 오류가 나는 경우가 있습니다ㅜ 왜 이런 오류가 발생하는지 궁금합니다
@코드없는프로그래밍
@코드없는프로그래밍 Жыл бұрын
제가 swift는 한번도 써보지 않아서 잘 모릅니다. 대략적으로 보기에 함수 앞 부분 _ s: String, _ t: String) -> Bool { let s: [Character] = Array(s) let t: [Character] = Array(t) 여기서 s와 t를 재정의 한것으로 보이는데 swift에서는 문제가 없나요?
@bromp8052
@bromp8052 Жыл бұрын
@@코드없는프로그래밍 문자열을 재정의한 이유는 swift에서는 문자열을 배열처럼 인덱스를 사용해서 접근이 불가능해서 character의 배열로 만들어줘서 인덱스를 사용해서 편하게 접근하기 위해서 재정의해준겁니다!
@코드없는프로그래밍
@코드없는프로그래밍 Жыл бұрын
컴파일 오류라고하면 변수 재정의가 원인일 수 있습니다.
@loganj6203
@loganj6203 3 жыл бұрын
처음에 해쉬테이블의 크기가 알파벳 크기만큼이니 Space complexity가 O(1)이 아니라 O(n)이 되야되는게 아닌가요? 헷갈리네요.
@코드없는프로그래밍
@코드없는프로그래밍 3 жыл бұрын
말씀하신대로 알파벳 리딩파트까지 계산하면 O(n)이 맞습니다. 여기서는 해쉬맵의 효용을 설명하기 위해 O(1)으로 고려햐였습니다. 정확히는 O(n)입니다. 감사합니다.
@plttji2615
@plttji2615 3 жыл бұрын
안녕하세요, 공유하신 코드내용과 다르게 저는 해쉬테이블을 1개 이용해서 구현했는데요, def isIsomorphic(s: str, t: str) -> bool: hash_table = {} for x,y in zip(s,t): if hash_table.get(x) is None: hash_table[x] = y continue if hash_table.get(x) == y: continue return False return True 뭐가 문제인지 알것 같으면서도 모르겠어요ㅠㅠ 왜 1개 테이블을 사용하면 안되는건가요? 감사합니다!
@코드없는프로그래밍
@코드없는프로그래밍 3 жыл бұрын
counter example을 드리자면 s가 "badc" 이고 t가 "baba" 인경우 b가 b에 매칭이 되고, d가 또 b에 매칭이 됨으로 test fail이 됩니다. 즉 하나의 char가 두개이상의 char에 매칭이 되는 경우를 생각해야 합니다.
@plttji2615
@plttji2615 3 жыл бұрын
@@코드없는프로그래밍 이해했습니다. 매번 답변해주셔서 정말 감사합니다!
@plttji2615
@plttji2615 3 жыл бұрын
@@코드없는프로그래밍 설명하신 부분이 이문제랑, 뒤에 있는 word pattern 문제에서 2개의 hash table를 사용하는 핵심 idea인거네요?
@코드없는프로그래밍
@코드없는프로그래밍 3 жыл бұрын
네 맞습니다
@plttji2615
@plttji2615 3 жыл бұрын
@@코드없는프로그래밍 감사합니다
코딩 테스트, 초급, 문제풀이3,4
4:01
코드없는 프로그래밍
Рет қаралды 1,8 М.
독학으로 코딩 테스트를 준비한다면
8:01
개발자 강민철
Рет қаралды 30 М.
The IMPOSSIBLE Puzzle..
00:55
Stokes Twins
Рет қаралды 68 МЛН
Osman Kalyoncu Sonu Üzücü Saddest Videos Dream Engine 275 #shorts
00:29
Family Love #funny #sigma
00:16
CRAZY GREAPA
Рет қаралды 42 МЛН
Who's spending her birthday with Harley Quinn on halloween?#Harley Quinn #joker
01:00
Harley Quinn with the Joker
Рет қаралды 20 МЛН
코딩테스트를 준비하는 가장 효율적인 방법
16:41
개발남노씨
Рет қаралды 92 М.
자연어 처리 트랜스포머 1강(Embedding, Positional Encoding)
16:55
Coding Opera Korea
Рет қаралды 3,8 М.
해시 Hash 알고리즘 설명 5분만에 이해하기
4:51
개발자로 취직하기
Рет қаралды 29 М.
C++ string 총 정리
6:58
코드없는 프로그래밍
Рет қаралды 5 М.
구현 문제 잘 푸는 팁 | 2023 네이버 코딩테스트 분석
23:51
Functional programming - A general introduction
11:47
Daedalus Community
Рет қаралды 111 М.
The IMPOSSIBLE Puzzle..
00:55
Stokes Twins
Рет қаралды 68 МЛН